matplotlib 3.5.1

Other ParametersParametersReturns
spy(self, Z, precision=0, marker=None, markersize=None, aspect='equal', origin='upper', **kwargs)

This visualizes the non-zero values of the array.

Two plotting styles are available: image and marker. Both are available for full arrays, but only the marker style works for scipy.sparse.spmatrix instances.

Image style

If marker and markersize are None, ~.Axes.imshow is used. Any extra remaining keyword arguments are passed to this method.

Marker style

If Z is a scipy.sparse.spmatrix or marker or markersize are None, a .Line2D object will be returned with the value of marker determining the marker type, and any remaining keyword arguments passed to ~.Axes.plot .

Other Parameters

**kwargs :

The supported additional parameters depend on the plotting style.

For the image style, you can pass the following additional parameters of ~.Axes.imshow :

For the marker style, you can pass any .Line2D property except for linestyle:

Properties: agg_filter: a filter function, which takes a (m, n, 3) float array and a dpi value, and returns a (m, n, 3) array alpha: scalar or None animated: bool antialiased or aa: bool clip_box: .Bbox clip_on: bool clip_path: Patch or (Path, Transform) or None color or c: color dash_capstyle: .CapStyle or {'butt', 'projecting', 'round'} dash_joinstyle: .JoinStyle or {'miter', 'round', 'bevel'} dashes: sequence of floats (on/off ink in points) or (None, None) data: (2, N) array or two 1D arrays drawstyle or ds: {'default', 'steps', 'steps-pre', 'steps-mid', 'steps-post'}, default: 'default' figure: .Figure fillstyle: {'full', 'left', 'right', 'bottom', 'top', 'none'} gid: str in_layout: bool label: object linestyle or ls: {'-', '--', '-.', ':', '', (offset, on-off-seq), ...} linewidth or lw: float marker: marker style string, ~.path.Path or ~.markers.MarkerStyle markeredgecolor or mec: color markeredgewidth or mew: float markerfacecolor or mfc: color markerfacecoloralt or mfcalt: color markersize or ms: float markevery: None or int or (int, int) or slice or list[int] or float or (float, float) or list[bool] path_effects: .AbstractPathEffect picker: float or callable[[Artist, Event], tuple[bool, dict]] pickradius: float rasterized: bool sketch_params: (scale: float, length: float, randomness: float) snap: bool or None solid_capstyle: .CapStyle or {'butt', 'projecting', 'round'} solid_joinstyle: .JoinStyle or {'miter', 'round', 'bevel'} transform: unknown url: str visible: bool xdata: 1D array ydata: 1D array zorder: float

Parameters

Z : (M, N) array-like

The array to be plotted.

precision : float or 'present', default: 0

If precision is 0, any non-zero value will be plotted. Otherwise, values of $|Z| > precision$ will be plotted.

For scipy.sparse.spmatrix instances, you can also pass 'present'. In this case any value present in the array will be plotted, even if it is identically zero.

aspect : {'equal', 'auto', None} or float, default: 'equal'

The aspect ratio of the Axes. This parameter is particularly relevant for images since it determines whether data pixels are square.

This parameter is a shortcut for explicitly calling :None:None:`.Axes.set_aspect`. See there for further details.

  • 'equal': Ensures an aspect ratio of 1. Pixels will be square.

  • 'auto': The Axes is kept fixed and the aspect is adjusted so that the data fit in the Axes. In general, this will result in non-square pixels.

  • None: Use image.aspect .

origin : {'upper', 'lower'}, default: :rc:`image.origin`

Place the [0, 0] index of the array in the upper left or lower left corner of the Axes. The convention 'upper' is typically used for matrices and images.

Returns

`~matplotlib.image.AxesImage` or `.Line2D`

The return type depends on the plotting style (see above).

Plot the sparsity pattern of a 2D array.

Examples

See :

Local connectivity graph

Hover to see nodes names; edges to Self not shown, Caped at 50 nodes.

Using a canvas is more power efficient and can get hundred of nodes ; but does not allow hyperlinks; , arrows or text (beyond on hover)

SVG is more flexible but power hungry; and does not scale well to 50 + nodes.

All aboves nodes referred to, (or are referred from) current nodes; Edges from Self to other have been omitted (or all nodes would be connected to the central node "self" which is not useful). Nodes are colored by the library they belong to, and scaled with the number of references pointing them


File: /matplotlib/axes/_axes.py#7652
type: <class 'function'>
Commit: