matplotlib.pyplot.subplot¶
-
matplotlib.pyplot.
subplot
(*args, **kwargs)[source]¶ Add a subplot to the current figure.
Wrapper of
Figure.add_subplot
with a difference in behavior explained in 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 the
index position on a grid with nrows rows and ncols columns.
index starts at 1 in the upper left corner and increases to the
right. index can also be a two-tuple specifying the (first,
last) indices (1-based, and including last) of the subplot, e.g.,
fig.add_subplot(3, 1, (1, 2))
makes a subplot that spans the upper 2/3 of the figure. - A 3-digit integer. The digits are interpreted as if given separately
as three single-digit integers, i.e.
fig.add_subplot(235)
is the same asfig.add_subplot(2, 3, 5)
. Note that this can only be used if there are no more than 9 subplots. - A
SubplotSpec
.
- Three integers (nrows, ncols, index). The subplot will take the
index position on a grid with nrows rows and ncols columns.
index starts at 1 in the upper left corner and increases to the
right. index can also be a two-tuple specifying the (first,
last) indices (1-based, and including last) of the subplot, e.g.,
- 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, seeprojections
. The default None 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. 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.SubplotBase
, or another subclass ofAxes
The axes of the subplot. The returned axes base class depends on the projection used. It is
Axes
if rectilinear projection is used andprojections.polar.PolarAxes
if polar projection is used. The returned axes is then a subplot subclass of the base class.
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.Property Description adjustable
{'box', 'datalim'} 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
float or None anchor
2-tuple of floats or {'C', 'SW', 'S', 'SE', ...} animated
bool aspect
{'auto'} or num autoscale_on
bool autoscalex_on
bool autoscaley_on
bool axes_locator
Callable[[Axes, Renderer], Bbox] axisbelow
bool or 'line' box_aspect
None, or a number clip_box
Bbox
clip_on
bool clip_path
Patch or (Path, Transform) or None contains
unknown facecolor
or fccolor figure
Figure
frame_on
bool gid
str in_layout
bool label
object navigate
bool navigate_mode
unknown path_effects
AbstractPathEffect
picker
None or bool or callable position
[left, bottom, width, height] or Bbox
prop_cycle
unknown rasterization_zorder
float or None rasterized
bool or None sketch_params
(scale: float, length: float, randomness: float) snap
bool or None title
str transform
Transform
url
str visible
bool xbound
unknown xlabel
str xlim
(bottom: float, top: float) xmargin
float greater than -0.5 xscale
{"linear", "log", "symlog", "logit", ...} xticklabels
unknown xticks
unknown ybound
unknown ylabel
str ylim
(bottom: float, top: float) ymargin
float greater than -0.5 yscale
{"linear", "log", "symlog", "logit", ...} yticklabels
unknown yticks
unknown zorder
float
Notes
Creating a subplot will delete any pre-existing subplot that overlaps with it beyond sharing a boundary:
import matplotlib.pyplot as plt # plot a line, implicitly creating a subplot(111) plt.plot([1, 2, 3]) # now create a subplot which represents the top plot of a grid # with 2 rows and 1 column. Since this subplot will overlap the # first, the plot (and its axes) previously created, will be removed plt.subplot(211)
If you do not want this behavior, use the
Figure.add_subplot
method or thepyplot.axes
function instead.If the figure already has a subplot with key (args, kwargs) then it will simply make that subplot current and return it. This behavior is deprecated. Meanwhile, if you do not want this behavior (i.e., you want to force the creation of a new subplot), you must use a unique set of args and kwargs. The axes label attribute has been exposed for this purpose: if you want two subplots that are otherwise identical to be added to the figure, make sure you give them unique labels.
In rare circumstances,
add_subplot
may be called with a single argument, a subplot axes instance already created in the present figure but not in the figure's list of axes.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)
- *argsint, (int, int, index), or