matplotlib.pyplot.subplot#
- 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 additionalbehavior 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
Three integers (nrows,ncols,index). The subplot will take theindex position on a grid withnrows rows andncols columns.index starts at 1 in the upper left corner and increases to theright.index can also be a two-tuple specifying the (first,last) indices (1-based, and includinglast) of the subplot, e.g.,
fig.add_subplot(3,1,(1,2))
makes a subplot that spans theupper 2/3 of the figure.A 3-digit integer. The digits are interpreted as if given separatelyas three single-digit integers, i.e.
fig.add_subplot(235)
is thesame asfig.add_subplot(2,3,5)
. Note that this can only be usedif there are no more than 9 subplots.
- projection{None, 'aitoff', 'hammer', 'lambert', 'mollweide', 'polar', 'rectilinear', str}, optional
The projection type of the subplot (
Axes
).str is the nameof a custom projection, seeprojections
. The defaultNone results in a 'rectilinear' projection.- polarbool, default: False
If True, equivalent to projection='polar'.
- sharex, sharey
Axes
, optional Share the x or y
axis
with sharex and/or sharey. Theaxis will have the same limits, ticks, and scale as the axis of theshared Axes.- labelstr
A label for the returned Axes.
- *argsint, (int, int,index), or
- Returns:
Axes
The Axes of the subplot. The returned Axes can actually be an instanceof a subclass, such as
projections.polar.PolarAxes
for polarprojections.
- Other Parameters:
- **kwargs
This method also takes the keyword arguments for the returned Axesbase class; except for thefigure argument. The keyword argumentsfor the rectilinear base class
Axes
can be found inthe following table but there might also be other keywordarguments if another projection is used.Property
Description
{'box', 'datalim'}
a filter function, which takes a (m, n, 3) float array and a dpi value, and returns a (m, n, 3) array and two offsets from the bottom left corner of the image
float or None
(float, float) or {'C', 'SW', 'S', 'SE', 'E', 'NE', ...}
bool
{'auto', 'equal'} or float
bool
unknown
unknown
Callable[[Axes, Renderer], Bbox]
bool or 'line'
float or None
BboxBase
or Nonebool
Patch or (Path, Transform) or None
bool or "auto"
bool
str
bool
object
bool
bool
unknown
list of
AbstractPathEffect
None or bool or float or callable
[left, bottom, width, height] or
Bbox
float or None
bool
(scale: float, length: float, randomness: float)
bool or None
unknown
str
str
bool
(lower: float, upper: float)
unknown
str
(left: float, right: float)
float greater than -0.5
unknown
unknown
unknown
(lower: float, upper: float)
unknown
str
(bottom: float, top: float)
float greater than -0.5
unknown
unknown
unknown
float
Notes
Changed in version 3.8:In versions prior to 3.8, any preexisting Axes that overlap with the new Axesbeyond sharing a boundary was deleted. Deletion does not happen in morerecent versions anymore. Use
Axes.remove
explicitly if needed.If you do not want this behavior, use the
Figure.add_subplot
methodor thepyplot.axes
function instead.If nokwargs are passed and there exists an Axes in the locationspecified byargs then that Axes will be returned rather than a newAxes being created.
Ifkwargs are passed and there exists an Axes in the locationspecified byargs, the projection type is the same, and thekwargs match with the existing Axes, then the existing Axes isreturned. Otherwise a new Axes is created with the specifiedparameters. We save a reference to thekwargs which we usefor this comparison. If any of the values inkwargs aremutable we will not detect the case where they are mutated.In these cases we suggest using
Figure.add_subplot
and theexplicit Axes API rather than the implicit pyplot API.Examples
plt.subplot(221)# equivalent but more generalax1=plt.subplot(2,2,1)# add a subplot with no frameax2=plt.subplot(222,frameon=False)# add a polar subplotplt.subplot(223,projection='polar')# add a red subplot that shares the x-axis with ax1plt.subplot(224,sharex=ax1,facecolor='red')# delete ax2 from the figureplt.delaxes(ax2)# add ax2 to the figure againplt.subplot(ax2)# make the first Axes "current" againplt.subplot(221)
Examples usingmatplotlib.pyplot.subplot
#

Controlling view limits using margins and sticky_edges