Skip to content

plot_config

Pydantic models for the Dojo trial-viewer PlotConfig.

These are the single source of truth for both server-side validation (profile save/load) and the generated TypeScript types in lib/plot-config.generated.ts.

To regenerate TypeScript types after changing this file:

Text Only
1
python scripts/gen_ts_models.py

DashStyle

Bases: StrEnum

Dash pattern applied to a plot line.

SOLID class-attribute instance-attribute

Python
SOLID = 'solid'

Unbroken line.

DASH class-attribute instance-attribute

Python
DASH = 'dash'

Evenly spaced dashes.

DOT class-attribute instance-attribute

Python
DOT = 'dot'

Evenly spaced dots.

DASHDOT class-attribute instance-attribute

Python
DASHDOT = 'dashdot'

Alternating dash and dot.

LONGDASH class-attribute instance-attribute

Python
LONGDASH = 'longdash'

Dashes with longer lengths.

LONGDASHDOT class-attribute instance-attribute

Python
LONGDASHDOT = 'longdashdot'

Alternating long dashes and dots.

MarkerSymbol

Bases: StrEnum

Shape used to mark individual data points.

NONE class-attribute instance-attribute

Python
NONE = 'none'

No marker.

CIRCLE class-attribute instance-attribute

Python
CIRCLE = 'circle'

Circular marker.

SQUARE class-attribute instance-attribute

Python
SQUARE = 'square'

Square marker.

DIAMOND class-attribute instance-attribute

Python
DIAMOND = 'diamond'

Diamond marker.

CROSS class-attribute instance-attribute

Python
CROSS = 'cross'

Cross (+) marker.

X class-attribute instance-attribute

Python
X = 'x'

x marker.

TRIANGLE_UP class-attribute instance-attribute

Python
TRIANGLE_UP = 'triangle-up'

Triangle-up marker.

TRIANGLE_DOWN class-attribute instance-attribute

Python
TRIANGLE_DOWN = 'triangle-down'

Triangle-down marker.

TRIANGLE_LEFT class-attribute instance-attribute

Python
TRIANGLE_LEFT = 'triangle-left'

Triangle-left marker.

TRIANGLE_RIGHT class-attribute instance-attribute

Python
TRIANGLE_RIGHT = 'triangle-right'

Triangle-right marker.

TRIANGLE_NE class-attribute instance-attribute

Python
TRIANGLE_NE = 'triangle-ne'

Triangle-ne marker.

TRIANGLE_SE class-attribute instance-attribute

Python
TRIANGLE_SE = 'triangle-se'

Triangle-se marker.

TRIANGLE_SW class-attribute instance-attribute

Python
TRIANGLE_SW = 'triangle-sw'

Triangle-sw marker.

TRIANGLE_NW class-attribute instance-attribute

Python
TRIANGLE_NW = 'triangle-nw'

Triangle-nw marker.

PENTAGON class-attribute instance-attribute

Python
PENTAGON = 'pentagon'

Pentagon marker.

HEXAGON class-attribute instance-attribute

Python
HEXAGON = 'hexagon'

Hexagon marker.

HEXAGON2 class-attribute instance-attribute

Python
HEXAGON2 = 'hexagon2'

Hexagon2 marker.

OCTAGON class-attribute instance-attribute

Python
OCTAGON = 'octagon'

Octagon marker.

STAR class-attribute instance-attribute

Python
STAR = 'star'

Star marker.

HEXAGRAM class-attribute instance-attribute

Python
HEXAGRAM = 'hexagram'

Hexagram marker.

STARSQUARE class-attribute instance-attribute

Python
STARSQUARE = 'starsquare'

Starsquare marker.

DIAMOND_CROSS class-attribute instance-attribute

Python
DIAMOND_CROSS = 'diamond-cross'

Diamond-cross marker.

DIAMOND_X class-attribute instance-attribute

Python
DIAMOND_X = 'diamond-x'

Diamond-x marker.

HOURGLASS class-attribute instance-attribute

Python
HOURGLASS = 'hourglass'

Hourglass marker.

BOWTIE class-attribute instance-attribute

Python
BOWTIE = 'bowtie'

Bowtie marker.

ASTERISK class-attribute instance-attribute

Python
ASTERISK = 'asterisk'

Asterisk marker.

HASH class-attribute instance-attribute

Python
HASH = 'hash'

Hash marker.

Y_UP class-attribute instance-attribute

Python
Y_UP = 'y-up'

Y-up marker.

Y_DOWN class-attribute instance-attribute

Python
Y_DOWN = 'y-down'

Y-down marker.

Y_LEFT class-attribute instance-attribute

Python
Y_LEFT = 'y-left'

Y-left marker.

Y_RIGHT class-attribute instance-attribute

Python
Y_RIGHT = 'y-right'

Y-right marker.

LINE_EW class-attribute instance-attribute

Python
LINE_EW = 'line-ew'

Line-ew marker.

LINE_NS class-attribute instance-attribute

Python
LINE_NS = 'line-ns'

Line-ns marker.

LINE_NE class-attribute instance-attribute

Python
LINE_NE = 'line-ne'

Line-ne marker.

LINE_NW class-attribute instance-attribute

Python
LINE_NW = 'line-nw'

Line-nw marker.

ARROW_UP class-attribute instance-attribute

Python
ARROW_UP = 'arrow-up'

Arrow-up marker.

ARROW_DOWN class-attribute instance-attribute

Python
ARROW_DOWN = 'arrow-down'

Arrow-down marker.

ARROW_LEFT class-attribute instance-attribute

Python
ARROW_LEFT = 'arrow-left'

Arrow-left marker.

ARROW_RIGHT class-attribute instance-attribute

Python
ARROW_RIGHT = 'arrow-right'

Arrow-right marker.

GridMode

Bases: StrEnum

Which grid lines are drawn on the plot.

NONE class-attribute instance-attribute

Python
NONE = 'none'

No grid lines.

MAJOR class-attribute instance-attribute

Python
MAJOR = 'major'

Major tick grid lines only.

ALL class-attribute instance-attribute

Python
ALL = 'all'

Major and minor tick grid lines.

LineMode

Bases: StrEnum

Controls whether traces are drawn as lines, markers, or both.

LINES class-attribute instance-attribute

Python
LINES = 'lines'

Connected line only.

MARKERS class-attribute instance-attribute

Python
MARKERS = 'markers'

Individual point markers only.

LINES_AND_MARKERS class-attribute instance-attribute

Python
LINES_AND_MARKERS = 'lines+markers'

Connected line with point markers.

InterpMode

Bases: StrEnum

Line interpolation method between data points.

LINEAR class-attribute instance-attribute

Python
LINEAR = 'linear'

Straight segments between points.

SPLINE class-attribute instance-attribute

Python
SPLINE = 'spline'

Smooth cubic spline.

HV class-attribute instance-attribute

Python
HV = 'hv'

Horizontal then vertical step.

VH class-attribute instance-attribute

Python
VH = 'vh'

Vertical then horizontal step.

HVH class-attribute instance-attribute

Python
HVH = 'hvh'

Horizontal-vertical-horizontal step.

VHV class-attribute instance-attribute

Python
VHV = 'vhv'

Vertical-horizontal-vertical step.

HoverMode

Bases: StrEnum

Tooltip behavior when hovering over the plot.

X_UNIFIED class-attribute instance-attribute

Python
X_UNIFIED = 'x unified'

Single tooltip showing all series at the hovered x value.

Y_UNIFIED class-attribute instance-attribute

Python
Y_UNIFIED = 'y unified'

Single tooltip showing all series at the hovered y value.

CLOSEST class-attribute instance-attribute

Python
CLOSEST = 'closest'

Tooltip for the nearest individual data point.

X class-attribute instance-attribute

Python
X = 'x'

Per-series tooltips triggered by x proximity.

Y class-attribute instance-attribute

Python
Y = 'y'

Per-series tooltips triggered by y proximity.

NONE class-attribute instance-attribute

Python
NONE = 'none'

Tooltips disabled.

LegendPos

Bases: StrEnum

Position of the plot legend.

BOTTOM class-attribute instance-attribute

Python
BOTTOM = 'bottom'

Legend below the plot area.

RIGHT class-attribute instance-attribute

Python
RIGHT = 'right'

Legend to the right of the plot area.

HIDDEN class-attribute instance-attribute

Python
HIDDEN = 'hidden'

Legend not shown.

ScaleType

Bases: StrEnum

Numeric scale type for an axis.

LINEAR class-attribute instance-attribute

Python
LINEAR = 'linear'

Uniform linear scale.

LOG class-attribute instance-attribute

Python
LOG = 'log'

Logarithmic scale.

ShapeType

Bases: StrEnum

Geometric shape drawn as an annotation on the plot.

VLINE class-attribute instance-attribute

Python
VLINE = 'vline'

Vertical line at a fixed x value.

HLINE class-attribute instance-attribute

Python
HLINE = 'hline'

Horizontal line at a fixed y value.

RECT class-attribute instance-attribute

Python
RECT = 'rect'

Filled rectangle defined by x0, x1, y0, y1.

PlotType

Bases: StrEnum

Coordinate system used to render the plot.

CARTESIAN class-attribute instance-attribute

Python
CARTESIAN = 'cartesian'

Standard x/y Cartesian axes.

POLAR class-attribute instance-attribute

Python
POLAR = 'polar'

Polar coordinates (r/theta).

DisplayUnitSystem

Bases: StrEnum

Named unit system for display-time conversion of telemetry values. When set, data is converted from its logged units to the chosen system before being returned to the frontend.

SI class-attribute instance-attribute

Python
SI = 'si'

SI units: meter / kilogram / second.

CGS class-attribute instance-attribute

Python
CGS = 'cgs'

CGS units: centimeter / gram / second.

FPS class-attribute instance-attribute

Python
FPS = 'fps'

FPS units: foot / slug / second.

IPS class-attribute instance-attribute

Python
IPS = 'ips'

IPS units: inch / slinch / second.

FFF class-attribute instance-attribute

Python
FFF = 'fff'

Furlong / firkin / fortnight. Not shown in the UI dropdown — set via the JSON editor.

XAxisConfig

Bases: BaseModel

Configuration for the x-axis signal and its filter chain.

YAxisConfig

Bases: BaseModel

Visual and filter configuration for a single y-axis signal.

Annotation

Bases: BaseModel

A text label pinned to a specific data coordinate.

VlineShape

Bases: BaseModel

A vertical reference line at a fixed x value.

HlineShape

Bases: BaseModel

A horizontal reference line at a fixed y value.

RectShape

Bases: BaseModel

A filled rectangle drawn as a reference region.

PlotProfileTab

Bases: BaseModel

One tab's worth of plot state inside a saved profile.

PlotProfile

Bases: BaseModel

A saved profile: the full set of open plot tabs.

Replaces the old profile format (a single bare PlotConfig per saved file) - see routers/mosaic.py's get_profile/save_profile for how a legacy single-config file is transparently read as a one-tab profile.