matplotlib.pyplot.subplot — Matplotlib 3.10.1 documentation (original) (raw)

matplotlib.pyplot.subplot(*args, **kwargs)[source]#

Add an Axes to the current figure or retrieve an existing Axes.

This is a wrapper of Figure.add_subplot which provides additional behavior when working with the implicit API (see the notes section).

Call signatures:

subplot(nrows, ncols, index, **kwargs) subplot(pos, **kwargs) subplot(**kwargs) subplot(ax)

Parameters:

*argsint, (int, int, index), or SubplotSpec, default: (1, 1, 1)

The position of the subplot described by one of

projection{None, 'aitoff', 'hammer', 'lambert', 'mollweide', 'polar', 'rectilinear', str}, optional

The projection type of the subplot (Axes). str is the name of a custom projection, see projections. The default None results in a 'rectilinear' projection.

polarbool, default: False

If True, equivalent to projection='polar'.

sharex, shareyAxes, optional

Share the x or y axis with sharex and/or sharey. The axis will have the same limits, ticks, and scale as the axis of the shared Axes.

labelstr

A label for the returned Axes.

Returns:

Axes

The Axes of the subplot. The returned Axes can actually be an instance of a subclass, such as projections.polar.PolarAxes for polar projections.

Other Parameters:

**kwargs

This method also takes the keyword arguments for the returned Axes base class; except for the figure argument. The keyword arguments for the rectilinear base class Axes can be found in the following table but there might also be other keyword arguments if another projection is used.

Notes

Changed in version 3.8: In versions prior to 3.8, any preexisting Axes that overlap with the new Axes beyond sharing a boundary was deleted. Deletion does not happen in more recent versions anymore. Use Axes.remove explicitly if needed.

If you do not want this behavior, use the Figure.add_subplot method or the pyplot.axes function instead.

If no kwargs are passed and there exists an Axes in the location specified by args then that Axes will be returned rather than a new Axes being created.

If kwargs are passed and there exists an Axes in the location specified by args, the projection type is the same, and the_kwargs_ match with the existing Axes, then the existing Axes is returned. Otherwise a new Axes is created with the specified parameters. We save a reference to the kwargs which we use for this comparison. If any of the values in kwargs are mutable we will not detect the case where they are mutated. In these cases we suggest using Figure.add_subplot and the explicit Axes API rather than the implicit pyplot API.

Examples

plt.subplot(221)

equivalent but more general

ax1 = plt.subplot(2, 2, 1)

add a subplot with no frame

ax2 = plt.subplot(222, frameon=False)

add a polar subplot

plt.subplot(223, projection='polar')

add a red subplot that shares the x-axis with ax1

plt.subplot(224, sharex=ax1, facecolor='red')

delete ax2 from the figure

plt.delaxes(ax2)

add ax2 to the figure again

plt.subplot(ax2)

make the first Axes "current" again

plt.subplot(221)

Examples using matplotlib.pyplot.subplot#