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
sys (NonlinearIOSystem 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.
pointdata (list 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.
timedata (int 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.
gridtype (str, 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.
gridspec (list, 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.
params (dict, 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).
color (matplotlib color spec, optional) – Plot all elements in the given color (use plot_<fcn>={‘color’: c} to set the color in one element of the phase plot.
ax (matplotlib.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.
dir (str, 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_streamlines (bool 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_vectorfield (bool 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
vectorfield()
.plot_equilpoints (bool 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
equilpoints()
.plot_separatrices (bool 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
separatrices()
.rcParams (dict) – Override the default parameters used for generating plots. Default is set by config.default[‘ctrlplot.rcParams’].
suppress_warnings (bool, optional) – If set to True, suppress warning messages in generating trajectories.
title (str, optional) – Set the title of the plot. Defaults to plot type and system name(s).
- Returns
cplt –
Object containing the data that were plotted:
cplt.lines: 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.axes: 2D array of
matplotlib.axes.Axes
for the plot.cplt.figure:
matplotlib.figure.Figure
containing the plot.
See
ControlPlot
for more detailed information.- Return type
ControlPlot
object