TimeSeriesPlot¶
Plot a multi-channel continuous streaming time series in real time.
This node accepts streaming data, and maintains a view of the most recent n seconds of data (the window length is adjustable). The node is made for continuous (i.e., not segmented) data. If the stream_name is not specified, the first signal stream will be plotted. This node requires that the data have a time axis, and either a space (channels) or a feature axis. All other axes (e.g., frequency) are folded into a flat space axis. For better viewing, this node supports removing the mean of the data so that the signals are centered, as well as auto-scaling of the data to a standard scale (using the same scale factor for all channels), and these options are enabled by default. The node also provides keyboard shortcuts for changing the scale (+ and -), the displayed time range (* and /), and for toggling the auto-scaling (a) and zero-mean (z) options. For performance reasons the default max number of channels displayed is set at 32, which will displayed the first 32 channels in the data (if there are more than that). Use the PgDn and PgUp keys to show the next/prev set of 32 channels. You can also change the number of channels shown in the max_channels parameter. Note that this plotter is not meant for scrollable review of a non-streaming dataset; for that please use the ScrollingPlot node.
Version 1.2.4
Ports/Properties¶
stream¶
Name of stream to plot. Wildcards are supported, i.e. mystream* will plot the first stream whose name starts with mystream.
- verbose name: Select Stream To Display
- default value: None
- port type: StringPort
- value type: str (can be None)
stream_name¶
- verbose name: Stream Name
- default value: None
- port type: AliasPort
- value type: str (can be None)
max_channels¶
Max number of channels to display at once. Note that a large number of channels can slow the plot down considerably, and is not recommended. Alternatively, instead of increasing this, use the PgUp/PgDn (or u/d) keys in the plot window to show the prev/next set of n channels (where n is this number).
- verbose name: Max Channels To Plot
- default value: 32
- port type: IntPort
- value type: int (can be None)
auto_line_colors¶
Automatically assign a different color to each line or bar. Takes precedence if selected. See colormap property to determine the color selection.
- verbose name: Auto Assign Colors
- default value: True
- port type: BoolPort
- value type: bool (can be None)
colormap¶
Colormap to use for auto assign colors. (See matplotlib online documentation for colormap examples.)
- verbose name: Colormap
- default value: gist_rainbow
- port type: EnumPort
- value type: str (can be None)
background_color¶
Background color. This can be hexadecimal (hex) notation (#RRGGBB) or CSS named colors ('white'). One resource (among many) that provides a list of both hex and CSS named colors is https://www.w3.org/wiki/CSS/Properties/color/keywords.
- verbose name: Background Color
- default value: #303030
- port type: StringPort
- value type: str (can be None)
decoration_color¶
Color of the axis labels and ticks. (See background_color description for details.).
- verbose name: Decoration Color
- default value: #B0B0B0
- port type: StringPort
- value type: str (can be None)
plot_minmax¶
Display min and max values of original data irrespective of scaling.
- verbose name: Show Data Min/max Values
- default value: False
- port type: BoolPort
- value type: bool (can be None)
title¶
Title of the plot window. The placeholders $(streamname), $(sourceid), and $(sourceurl) can be used here.
- verbose name: Title
- default value:
- port type: StringPort
- value type: str (can be None)
initial_dims¶
Initial position of the window on the monitor. This is given in pixels, and is formatted as [x, y, width, height]. If x, y are set to 0 each, then the window will appear in the top left corner of the current screen.
- verbose name: Window Position
- default value: [50, 50, 1000, 800]
- port type: ListPort
- value type: list (can be None)
left_offset¶
Left offset of the window on the monitor. The x value in the initial window position property will be increased by this amount. Use this to shift all plots to a second monitor, for example. May be a negative number (i.e., to move plots to a window to the left).
- verbose name: Left Offset
- default value: 0
- port type: IntPort
- value type: int (can be None)
show_toolbar¶
Show the window toolbar (which provides some additional functions).
- verbose name: Show Toolbar
- default value: False
- port type: BoolPort
- value type: bool (can be None)
always_on_top¶
Window should be always on top. If this is enabled, then the window will not be occluded by other windows.
- verbose name: Display Window Always On Top
- default value: False
- port type: BoolPort
- value type: bool (can be None)
tight_layout¶
Reduce the amount of white space around the plot within the window.
- verbose name: Tight Layout
- default value: True
- port type: BoolPort
- value type: bool (can be None)
font_size¶
Font size (in points) of text plotted outside the plot axes, such as axis labels, legend, etc.
- verbose name: Font Size
- default value: 11
- port type: FloatPort
- value type: float (can be None)
annotation_font_size¶
Font size (in points) for text which appear inside the plot axes, such as markers, scale, etc.
- verbose name: Annotation Font Size
- default value: 11
- port type: FloatPort
- value type: float (can be None)
antialiased¶
Draw graphics antialiased. If set to False, lines will appear more pixelated or 'jaggy', but plotting should render faster.
- verbose name: Draw Antialiased Lines
- default value: True
- port type: BoolPort
- value type: bool (can be None)
max_redraw_hz¶
Maximum redraw rate of this plot in Hz. Limits how often the matplotlib canvas is repainted (and, when the plot feeds a Plot Dashboard, how often the dashboard re-renders the corresponding panel). None means use the Plot Dashboard's default for downstream panels and no throttle for this node's own window. 0 means no throttle (legacy behavior, draw on every tick). A positive value is the upper bound on the redraw rate. Reducing this is particularly useful for nodes whose draw is expensive (e.g. matplotlib tables, which are heavy on macOS due to CoreText).
- verbose name: Max Redraw Rate (Hz)
- default value: None
- port type: FloatPort
- value type: float (can be None)
line_color¶
Color of the lines. (See background_color description for details.)
- verbose name: Line Color
- default value: white
- port type: StringPort
- value type: str (can be None)
zero_color¶
Color of the grid lines. (See background color description for details.)
- verbose name: Zero Color
- default value: #606060
- port type: StringPort
- value type: str (can be None)
line_width¶
Width of the lines (or bars).
- verbose name: Line Width
- default value: 1.25
- port type: FloatPort
- value type: float (can be None)
label_rotation¶
Orientation of plot Y axis tick labels.
- verbose name: Label Rotation
- default value: horizontal
- port type: EnumPort
- value type: str (can be None)
x_label¶
Label for the X axis. Leave empty to automatically use a suitable default.
- verbose name: X Label
- default value:
- port type: StringPort
- value type: str (can be None)
y_label¶
Label for the Y axis. Leave empty to automatically use a suitable default.
- verbose name: Y Label
- default value:
- port type: StringPort
- value type: str (can be None)
verbose¶
Print additional information such as if the incoming packet has no data to plot, etc.
- verbose name: Verbose
- default value: False
- port type: BoolPort
- value type: bool (can be None)
track_window_position¶
Track the window position and print the new position in the console. This is useful for setting the window position property.
- verbose name: Track Window Position
- default value: False
- port type: BoolPort
- value type: bool (can be None)
suppress_window¶
Suppress the display window. When enabled, the node will not open a plot window; use this when feeding the figure output into a Plot Dashboard node.
- verbose name: Suppress Window
- default value: False
- port type: BoolPort
- value type: bool (can be None)
figure_out¶
Plot data for PlotDashboard (PlotData).
- verbose name: Figure Out
- default value: None
- port type: DataPort
- value type: object (can be None)
- data direction: OUT
data¶
Data to display.
- verbose name: Data
- default value: None
- port type: DataPort
- value type: Packet (can be None)
- data direction: INOUT
value¶
Optional scalar value to display as a text overlay in the plot (e.g ., a computed BPM while showing a PPG trace). Expects a Packet whose first chunk contains a block with a single numeric element (i.e., block.data is a 1-element array). If the block contains multiple elements, only the first is used.
- verbose name: Value
- default value: None
- port type: DataPort
- value type: Packet (can be None)
- data direction: INOUT
x_axis¶
Axis containing the data to plot along the X axis. Usually this is time, but may also be instance if plotting trials rather than time points. This axis must contain a field named 'times'.
- verbose name: X Axis
- default value: time
- port type: ComboPort
- value type: str
y_axis¶
Axis containing the data to plot along the Y axis. You may also additionally specify an axis label such as 'feature.concentrations'.
- verbose name: Y Axis
- default value: space
- port type: ComboPort
- value type: str
time_range¶
Time range to display. This is the number of seconds of recent data that shall be plotted.
- verbose name: Time Range To Display
- default value: 5.0
- port type: FloatPort
- value type: float (can be None)
absolute_time¶
Show absolute time in time axis. If this is enabled, then the absolute time stamps of the data will be displayed on the axis. These will depend on the data, and you can use the ShiftTimestamps node prior to this node to reset them to 0 relative to the start of the data. If this property is false, the X axis will show the time relative to the most recent time point in the data (i.e., the current time point is 0.0, and 3 seconds earlier would be displayed as -3.0).
- verbose name: Display Absolute Times
- default value: False
- port type: BoolPort
- value type: bool (can be None)
plot_markers¶
Display event markers as vertical lines.
- verbose name: Plot Markers
- default value: False
- port type: BoolPort
- value type: bool (can be None)
marker_color¶
Color of vertical lines for marker events. Either a string (see background_color description), or a dictionary that represents a mapping from event type to color (the special key '*' stands for all other markers).
- verbose name: Marker Color
- default value: darkorange
- port type: Port
- value type: object (can be None)
stacked¶
Display channels stacked on top of each other (default) or superimposed using the same Y axis. When stacked mode is off, all channels share the same Y axis and are drawn on top of each other. You can toggle this with the 's' key.
- verbose name: Stacked Mode
- default value: True
- port type: BoolPort
- value type: bool (can be None)
y_range¶
Range of values for the Y axis when in unstacked (superimposed) mode, as a two-element list [min, max]. If set to [0, 0], the range is determined automatically from the scale property. This property has no effect in stacked mode.
- verbose name: Y Axis Range
- default value: [0, 0]
- port type: ListPort
- value type: list (can be None)
zeromean¶
Display data with mean corrected to zero. This makes sure that each channel is centered for better viewing. If this is disabled, your data may be outside the window, especially if you have not performed high-pass filtering on your signal. Enabling this may make the curves appear to shift up or down if their mean is not already zero.
- verbose name: Center (Zero-Mean) Channels
- default value: True
- port type: BoolPort
- value type: bool (can be None)
scale¶
Data scale. Increasing this value will magnify the plot curves correspondingly. You can also use the + and - keys to change the scale interactively.
- verbose name: Data Scale Factor
- default value: 1.0
- port type: FloatPort
- value type: float (can be None)
autoscale¶
Automatically scale channels to a standard scale. This makes sure that channels are rescaled such that they fit comfortably in the drawing area. All channels are rescaled by the same scale factor. Enabling this may make the curves appear to change scale suddenly, especially when large artifacts come into view or go out of view.
- verbose name: Autoscale Data
- default value: True
- port type: BoolPort
- value type: bool (can be None)
nans_as_zero¶
Show NaN values as zero.
- verbose name: Nans As Zero
- default value: False
- port type: BoolPort
- value type: bool (can be None)
no_concatenate¶
Don't concatenate successive data. Can be used to display the content of a sliding window (e.g., MovingWindow node).
- verbose name: No Concatenate
- default value: False
- port type: BoolPort
- value type: bool (can be None)
value_label¶
Label to display next to the overlay value (e.g ., 'BPM'). If empty, just the number is shown.
- verbose name: Value Label
- default value:
- port type: StringPort
- value type: str (can be None)
value_decimals¶
Number of decimal places for the overlay value. Set to 0 to display as an integer.
- verbose name: Value Decimals
- default value: 1
- port type: IntPort
- value type: int (can be None)
override_srate¶
Deprecated; use the OverrideSamplingRate before this node if necessary.
- verbose name: Override Srate
- default value: None
- port type: FloatPort
- value type: float (can be None)
set_breakpoint¶
Set a breakpoint on this node. If this is enabled, your debugger (if one is attached) will trigger a breakpoint.
- verbose name: Set Breakpoint (Debug Only)
- default value: False
- port type: BoolPort
- value type: bool (can be None)
metadata¶
User-definable meta-data associated with the node. Usually reserved for technical purposes.
- verbose name: Metadata
- default value: {}
- port type: DictPort
- value type: dict (can be None)