Skip to main content

Plot

Plot arbitrary numeric values from topic message paths.

When playing back local or remote data files, this panel will preload the data belonging to the specified topic message paths for the whole playback timeline. Current playback time is indicated by a vertical gray bar.

add series

Settings

General

fielddescription
Sync with other plotsSync to other Plot and State Transitions panels with a timestamp-based x-axis

Legend

fielddescription
PositionPosition of the legend in relation to the chart (Floating, Left, Top)
Show legendDisplay the legend
Show valuesShow the corresponding y value next to each series in the legend (either at the current playback time or at a point on user hover)

Y Axis

fielddescription
Show labelsDisplay labels for the y-axis
MinFixed minimum value for y-axis
MaxFixed maximum value for y-axis

X Axis

fielddescription
ValueValue plotted on x-axis: a timestamp, an index or a message path
Show labelsDisplay labels for the x-axis
MinFixed minimum value for x-axis
MaxFixed maximum value for x-axis
Range (seconds)Width of the panel viewport as it follows playback (in seconds); time series only

There are 4 possible values for the x-axis Value setting:

Timestamp

By default, the panel plots y-values against incoming messages' log times. It is possible to choose between log, publish, or header stamp time for each series. All time series Plot panels in a given layout can be kept in sync for easy comparison.

plot with timestamp x-axis

Index

In this mode, adding message path /some_topic.some_array as a new line in the plot will chart that array's values against their respective indices. For example, if /some_topic.some_array contained the values [5, 10, 15], the resulting points on the chart would be [0, 5], [1, 10], and [2, 15].

This plots just the data from the latest tick, and should always point to an array of values.

plot with index x-axis

Path (current) or Path (accumulated)

This mode produces scatter plots of y-values against x-values from a message path. "Path (current)" will plot just the data from the latest message at a time, while "Path (accumulated)" will plot data from all messages.

Using message path syntax, specify the path to the x-axis data, e.g. /some_topic.position.x and each series will pair the corresponding y-axis data, e.g. /some_topic.position.y.

plot with path x-axis - current

plot with path x-axis - accumulated

Series

fielddescription
Message pathMessage path containing Y values for the series
LabelLabel displayed for the series in the legend
ColorColor used to plot the series
Line sizeWidth of line connecting data points
Show lineShow line connecting data points. (Not applicable to reference lines.)
TimestampTimestamp used for message ordering. (Not applicable to reference lines.)

Use the panel settings to add, edit, or remove data series. Use the "X" next to each data series in settings or the plot legend to remove the series.

add series

Enter the field or slice of data you would like plotted on the y-axis using message path syntax as a Series. Entering a single number will create a horizontal line at that value.

If you enter a message path that points to multiple values (e.g. /some_topic/some_array[:].x), the plot will display multiple values each x-axis tick.

Each series can be configured to display a descriptive label via the Label field in settings.

Plot panel settings

User interactions

Pan and Zoom

Scroll to zoom, and drag to pan. By default, scrolling will zoom horizontally only. To zoom vertically, hold v while scrolling. To zoom horizontally and vertically at the same time, hold b while scrolling. Click the "reset view" button or double-click the panel to reset to the original viewport.

Click-to-seek

Only available for data sources which support seeking.

Hover over any point on the plot to see its details in a tooltip. You'll see a vertical yellow bar appear, as well as a corresponding yellow marker at the same on the playback timeline. Click to seek playback to the yellow marker on the timeline.

Download CSV data

Right-click the plot to download the plotted data as a .csv file.

Math modifiers

The following Math functions are available to append to your Plot panel's message paths:

  • .@abs
  • .@acos
  • .@asin
  • .@atan
  • .@ceil
  • .@cos
  • .@derivative
  • .@log
  • .@log1p
  • .@log2
  • .@log10
  • .@negative
  • .@round
  • .@sign
  • .@sin
  • .@sqrt
  • .@tan
  • .@trunc

Note that .@derivative will not work with scatter plots (i.e. message paths that point to an array of values for each x-axis tick).

See the Javascript Math documentation for more details.

Reference lines

To add a reference line at a constant value in a plot panel, add a series and set the message path to the constant value you would like plotted.

plot with reference value

Downsampling

To improve performance, the Plot panel will downsample data when points are too dense to meaningfully display.

Timestamp mode

In timestamp mode, the Plot panel will downsample data using a min/max/first/last downsampling algorithm. This downsampling will preserve extremes so even when downsampled, the plot will still show the highest and lowest values for each time period. The points kept during downsampling will always be from the original data — downsampling does not interpolate or create new points.

When data is downsampled, the Plot panel will automatically hide the dots for your data and only show lines. You can zoom until you see dots indicating you are seeing the full original data.

Path modes (Scatterplot)

In path modes, the Plot panel will use different downsampling approaches depending on the "Show lines" setting for the series.

If the series does not have lines enabled, downsampling will remove points which occur at the same pixel location as other points. The rendered plot will look the same as one with no downsampling.

If the series has lines enabled, downsampling will preserve the shape of the data and only remove points which would not alter the shape. When data is downsampled, the Plot panel will automatically hide the dots for your data and only show lines. You can zoom until you see dots indicating you are seeing the full original data.

Shortcuts

  • Scroll – Zoom in and out horizontally
  • v + Scroll – Zoom in and out vertically
  • b + Scroll – Zoom in and out both horizontally and vertically