control.phase_plane_plot

control.phase_plane_plot(sys, pointdata=None, timedata=None, gridtype=None, gridspec=None, plot_streamlines=True, plot_vectorfield=False, plot_equilpoints=True, plot_separatrices=True, ax=None, suppress_warnings=False, title=None, **kwargs)[source]

Plot phase plane diagram.

This function plots phase plane data, including vector fields, stream lines, equilibrium points, and contour curves.

Parameters
sysNonlinearIOSystem or callable(t, x, …)

I/O system or function used to generate phase plane data. If a function is given, the remaining arguments are drawn from the params keyword.

pointdatalist or 2D array

List of the form [xmin, xmax, ymin, ymax] describing the boundaries of the phase plot or an array of shape (N, 2) giving points of at which to plot the vector field.

timedataint or list of int

Time to simulate each streamline. If a list is given, a different time can be used for each initial condition in pointdata.

gridtypestr, optional

The type of grid to use for generating initial conditions: ‘meshgrid’ (default) generates a mesh of initial conditions within the specified boundaries, ‘boxgrid’ generates initial conditions along the edges of the boundary, ‘circlegrid’ generates a circle of initial conditions around each point in point data.

gridspeclist, optional

If the gridtype is ‘meshgrid’ and ‘boxgrid’, gridspec gives the size of the grid in the x and y axes on which to generate points. If gridtype is ‘circlegrid’, then gridspec is a 2-tuple specifying the radius and number of points around each point in the pointdata array.

paramsdict, optional

Parameters to pass to system. For an I/O system, params should be a dict of parameters and values. For a callable, params should be dict with key ‘args’ and value given by a tuple (passed to callable).

colormatplotlib color spec, optional

Plot all elements in the given color (use plot_<element> = {‘color’: c} to set the color in one element of the phase plot (equilpoints, separatrices, streamlines, etc).

axmatplotlib.axes.Axes, optional

The matplotlib axes to draw the figure on. If not specified and the current figure has a single axes, that axes is used. Otherwise, a new figure is created.

Returns
cpltControlPlot object

Object containing the data that were plotted. See ControlPlot for more detailed information.

cplt.linesarray of list of matplotlib.lines.Line2D

Array of list of matplotlib.artist.Artist objects:

  • lines[0] = list of Line2D objects (streamlines, separatrices).

  • lines[1] = Quiver object (vector field arrows).

  • lines[2] = list of Line2D objects (equilibrium points).

cplt.axes2D array of matplotlib.axes.Axes

Axes for each subplot.

cplt.figurematplotlib.figure.Figure

Figure containing the plot.

Other Parameters
arrowsint

Set the number of arrows to plot along the streamlines. The default value can be set in config.defaults['phaseplot.arrows'].

arrow_sizefloat

Set the size of arrows to plot along the streamlines. The default value can be set in config.defaults['phaseplot.arrow_size'].

arrow_stylematplotlib patch

Set the style of arrows to plot along the streamlines. The default value can be set in config.defaults['phaseplot.arrow_style'].

dirstr, optional

Direction to draw streamlines: ‘forward’ to flow forward in time from the reference points, ‘reverse’ to flow backward in time, or ‘both’ to flow both forward and backward. The amount of time to simulate in each direction is given by the timedata argument.

plot_streamlinesbool or dict, optional

If True (default) then plot streamlines based on the pointdata and gridtype. If set to a dict, pass on the key-value pairs in the dict as keywords to streamlines.

plot_vectorfieldbool or dict, optional

If True (default) then plot the vector field based on the pointdata and gridtype. If set to a dict, pass on the key-value pairs in the dict as keywords to phaseplot.vectorfield.

plot_equilpointsbool or dict, optional

If True (default) then plot equilibrium points based in the phase plot boundary. If set to a dict, pass on the key-value pairs in the dict as keywords to phaseplot.equilpoints.

plot_separatricesbool or dict, optional

If True (default) then plot separatrices starting from each equilibrium point. If set to a dict, pass on the key-value pairs in the dict as keywords to phaseplot.separatrices.

rcParamsdict

Override the default parameters used for generating plots. Default is set by config.defaults['ctrlplot.rcParams'].

suppress_warningsbool, optional

If set to True, suppress warning messages in generating trajectories.

titlestr, optional

Set the title of the plot. Defaults to plot type and system name(s).