Multichart expressions

Supported references

Multichart expressions can refer to existing chart items, datasets, and attributes directly, but the reference type is always explicit.

SyntaxMeaning
$1Chart item series by workspace id
$1[0..256]Chart item series slice by sample range
!/datasetDataset series
!/dataset[..,0]Dataset series with explicit slicing
!/group:traceSeries-valued attribute on a group or dataset
!$1:traceSeries-valued attribute on the dataset backing chart item $1
#/group/scalarScalar dataset value
#/group/ds:BIASScalar attribute on a group or dataset
#$1:SCALEScalar attribute on the dataset backing chart item $1

Y-series and x/y-series

An expression can produce:

  • a normal y-series
  • a tuple-based x/y series

Examples:

$1 * #$1:SCALE
!/signals/sine_wave + #/group_preview/offset
$1[0..512] - $2[128..640]
($1 * #/group_preview:scale, !/group_preview/time)

The tuple form is the most important one for custom x/y plots because it gives you explicit control over both axes.

The same syntax is also used by group preview expressions. In the bundled example, /group_preview defines:

(!/group_preview/time, (!/group_preview/value - #/group_preview/offset) * #/group_preview:scale)

Here is an example of a parametric x/y series using sine and cosine signals to form a circle:

(!/signals/sine_wave, !/signals/cosine_wave)

Parametric plot

Interactive prompt

Open the expression prompt with:

  • Enter or e in multichart mode, or
  • mchart prompt

The editor stays below the chart, so opening it does not change the plot viewport.

Enter starts a new expression. e loads the selected series expression so you can update it in place.

  • Enter submits
  • Tab applies the selected suggestion
  • Up and Down move through suggestions
  • Esc closes the editor

Invalid expressions are reported inline. Suggestions include chart item ids, dataset paths, and attribute names when they can be resolved from the current file.

Practical tips

  • add a raw dataset first so you have stable $1, $2, and $3 references to build from
  • use $id[start..end] when you want to align or compare only part of an existing chart item
  • use :ATTR only when you want an explicit attribute lookup on an object or dataset-backed chart item
  • prefer explicit dataset slicing when the same dataset can be interpreted several ways