Skip to content

Type

Changing your novem plot

AI-assisted, human-approvednovem uses AI to review and keep our documentation up to date.

config/type selects the plot's renderer and determines which configuration options apply. Changing it updates the plot and, for compatible chart types, animates the 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 categories group renderers with related settings. A plot can change between compatible types while retaining its data.

Charts

Charts include bars, lines, areas, maps, pies, and scatter plots. Compatible types animate when you change between them.

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 can apply types to those cells again. 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.