Stores data on plot areas in the
TimeSeries visualizer that can be toggled in the control panel. Should not be instantiated directly; use
Can also be used in the
Charts visualizer using
Charts.addPlot(type='timeseries'), with some modified functionality. In that case the resolution is set to the refresh rate and does not automatically adjust downward.
Click a method name for more detailed documentation.
active( val, updateGUI )
Turns on or off the selected state of a plot in the control panel.
addSeries( reporter, label, color, … )
Registers a reporter to be drawn in a particular plot during the model’s runtime.
draw( t, forceUpdate )
axesobject for display on the visualizer. This function is called after
ChartPlot.update()when the visualizer receives new data, and when scrubbing the time bar. The
update()method, therefore, should be used to store model data by time, which can then be used by
Charts will refresh the entire canvas after updating each of the individual plots, so there is no need to refresh the canvas manually here unless it is desired to redraw the graph out of sync (e.g. if the subclass provides for interactivity and the plot should update while the model is paused).
Subclasses should call
super().draw(t, forceUpdate)at the end of the function.
MPLEvent( event )
An event handling method that can be overridden in subclasses to catch pick (
pick_event), keypress (
key_press_event), and mouse click (
button_press_event) events that occur inside a particular plot. This is distinct from functions passed to
MPLVisualization.addKeypress(), as those will run for keys pressed any time the visualization window is in focus, regardless of the mouse position.
For example, pressing 'l' with the mouse over a
AgentsPlotwill rotate the layout. The key pressed can be accessed with
This function should not be called by user code, but it may be defined in subclasses of
event.canvas.draw_idle()should be called at the end if the plot needs to be refreshed following the event. See the Matplotlib events documentation for more on interacting with the
update( data, t )
Receives current model data and stores it for future scrubbing.
Note that this function is called when the visualizer receives new data from the model. Because
ChartPlot.draw()is called both after
ChartPlot.update()and when the time bar is scrubbed, drawing code should be put in
ChartPlot.draw()and not here, unless there is code to be run only in the event of new data that should not be run when scrubbing (e.g. calculating new plot bounds).
If the visualizer needs model properties besides the current data, the model object can be accessed with
This function should not typically be called from user code, though it can be for out-of-sync plot updates when interacting with a plot. See the
agentClickhook for an example.
launch( axes )
Initial code to set up
Chartslaunches the visualization window. Subclasses should call
super().launch()at the beginning of the method. This function should not be called from user code.
type — str
A short identifying string, to be used in the
name — str
A short name, used to refer back to the plot afterward.
label — str
The label for the plot, to be displayed on the toggle in the control panel.
axes — matplotlib.AxesSubplot
AxesSubplotobject on which the plot is drawn. This property is added to the
Plotobject only for visible plots and when the
TimeSerieswindow is launched.
projection — str
The Matplotlib coordinate projection to use.
'rectilinear', but other projections available by default are
'mollweide'. Custom Matplotlib projection objects can also be passed to this argument.
Initial value: None
viz — Charts
selected — bool
Whether the plot is currently queued for display. Do not modify this property directly; use
ChartPlot.active()to ensure consistency with the GUI state.
series — list
A list of Series that have been added to the plot.
logscale — bool
Whether to display the plot's vertical axis on a logarithmic scale by default.
check — textCheck|Ipywidgets.Interactive
The GUI element corresponding to the plot selector. Not available until the control panel is launched.
Notes and Examples