Type
Changing your novem plot
AI assisted, human approved — novem uses AI to review and keep our documentation up to date.
The type is probably the most important option of your novem plot. In addition
to controlling what other options you can set, the type also controls what kind
of plot you want to render.
As all novem plots are live, the instant you change the type, the plot will update. If applicable, this will also trigger a render transition.
Structure
plot_name => Name
...
├── config => Configuration options
...
│ └── type => bar, sbar, gbar etc...
...
Key novem types
You'll notice that the documentation for the novem plot is split into sections such as Charts and Tables.
These sections and their visuals might look different from each other, but they are all just novem plots. So if you wish, you can update the type of your plot to go from a barchart to a table or a calendar.
The reason for segmenting plots into the different category is a combination of logical grouping, shared configuration option or shared purpose.
Charts
The most common type of novem plots you'll make is probably charts. Chart contains all the most common visuals such as bars, lines, areas, maps, pies, scatters etc.
An extensive effort has been made show helpful transitions when switching between plots in the chart category.
Tables
Tables have been placed in their own category as they share a lot of common options and formats. The novem slicing functionality is primarily developed for styling tables.
Sliced types
The type file accepts more than a single scalar. Using the novem slicing notation each line can claim a region of your data (rows × columns) for a mark type, so one plot mixes marks per cell — the first two series as a stacked bar with the last series as a line, or a series that switches from area to line where the forecast begins.
: 1:2 sbar -- all rows, the first two series: one stack
: -1 line -- the last series as a line over it
Each line is whitespace-separated into one to three fields, with --
starting a comment:
[row-slicer] [col-slicer] type
- One token is a bare line: each bare line claims the next unclaimed column, and the last bare line covers every cell nothing else matched. A file with exactly one bare token is the scalar form above.
- Two tokens read as
col-slicer type— a single slicer addresses columns (series). - Three tokens read as
row-slicer col-slicer type. Row slicers partition the index, so the same series can change type along the chart (actuals as area, forecast rows as line).
Each line paints its selection as an independent layer; two layers can select the same cells and both paint (a bar under a line). Invalid lines are logged and skipped, and the rest of the file survives.
Line markers
The shared + and - line markers apply:
+ <selector> <type>attaches a layer to the nearest preceding plain line and follows its base's rules: a stacked variant accumulates in the base's stacking context, a bar variant shares the base's band slot.- <selector>erases the selected cells from every layer above it, and later lines still paint into the hole. Eraser lines take a slicer only, no type.
: : sbar -- everything one stack...
- : 3 -- ...except the third series...
: 3 line -- ...which draws as a line
The combo set
Only the vertical cartesian family may appear on a sliced line: line,
sline, area, sarea, bar, gbar, sbar and scatter, plus two
special members:
pie— as an instruction its column slicer picks the series to pie (: 2 pie); the rows are the slices and the pie still owns the whole plot.none— claims its cells like any other layer but draws nothing: the cells still count for extents, scales, facets and legends.
mline and marea are deprecated aliases of line and area (which
always drew multiple series); they are accepted anywhere a type is and
normalize to their canonical family.
Every other type — tables, maps, the horizontal h* family, data-reshaping
types such as hist, hexbin, bubble and aggbar, the calendars
(cal/calendar and their suffix variants) and color — is scalar-only:
legal as the single type of the whole plot, never on a sliced line.