matplotlib.figure.SubFigure.subplots#

SubFigure.subplots(nrows=1,ncols=1,*,sharex=False,sharey=False,squeeze=True,width_ratios=None,height_ratios=None,subplot_kw=None,gridspec_kw=None)[source]#

Add a set of subplots to this figure.

This utility wrapper makes it convenient to create common layouts ofsubplots in a single call.

Parameters:
nrows, ncolsint, default: 1

Number of rows/columns of the subplot grid.

sharex, shareybool or {'none', 'all', 'row', 'col'}, default: False

Controls sharing of x-axis (sharex) or y-axis (sharey):

  • True or 'all': x- or y-axis will be shared among all subplots.

  • False or 'none': each subplot x- or y-axis will be independent.

  • 'row': each subplot row will share an x- or y-axis.

  • 'col': each subplot column will share an x- or y-axis.

When subplots have a shared x-axis along a column, only the x ticklabels of the bottom subplot are created. Similarly, when subplotshave a shared y-axis along a row, only the y tick labels of thefirst column subplot are created. To later turn other subplots'ticklabels on, usetick_params.

When subplots have a shared axis that has units, callingAxis.set_units will update each axis with the new units.

Note that it is not possible to unshare axes.

squeezebool, default: True
  • If True, extra dimensions are squeezed out from the returnedarray of Axes:

    • if only one subplot is constructed (nrows=ncols=1), theresulting single Axes object is returned as a scalar.

    • for Nx1 or 1xM subplots, the returned object is a 1D numpyobject array of Axes objects.

    • for NxM, subplots with N>1 and M>1 are returned as a 2D array.

  • If False, no squeezing at all is done: the returned Axes objectis always a 2D array containing Axes instances, even if it endsup being 1x1.

width_ratiosarray-like of lengthncols, optional

Defines the relative widths of the columns. Each column gets arelative width ofwidth_ratios[i]/sum(width_ratios).If not given, all columns will have the same width. Equivalenttogridspec_kw={'width_ratios':[...]}.

height_ratiosarray-like of lengthnrows, optional

Defines the relative heights of the rows. Each row gets arelative height ofheight_ratios[i]/sum(height_ratios).If not given, all rows will have the same height. Equivalenttogridspec_kw={'height_ratios':[...]}.

subplot_kwdict, optional

Dict with keywords passed to theFigure.add_subplot call used tocreate each subplot.

gridspec_kwdict, optional

Dict with keywords passed to theGridSpec constructor used to createthe grid the subplots are placed on.

Returns:
Axes or array of Axes

Either a singleAxes object or an array of Axesobjects if more than one subplot was created. The dimensions of theresulting array can be controlled with thesqueeze keyword, seeabove.

Examples

# First create some toy data:x=np.linspace(0,2*np.pi,400)y=np.sin(x**2)# Create a figurefig=plt.figure()# Create a subplotax=fig.subplots()ax.plot(x,y)ax.set_title('Simple plot')# Create two subplots and unpack the output array immediatelyax1,ax2=fig.subplots(1,2,sharey=True)ax1.plot(x,y)ax1.set_title('Sharing Y axis')ax2.scatter(x,y)# Create four polar Axes and access them through the returned arrayaxes=fig.subplots(2,2,subplot_kw=dict(projection='polar'))axes[0,0].plot(x,y)axes[1,1].scatter(x,y)# Share an X-axis with each column of subplotsfig.subplots(2,2,sharex='col')# Share a Y-axis with each row of subplotsfig.subplots(2,2,sharey='row')# Share both X- and Y-axes with all subplotsfig.subplots(2,2,sharex='all',sharey='all')# Note that this is the same asfig.subplots(2,2,sharex=True,sharey=True)

Examples usingmatplotlib.figure.SubFigure.subplots#

Petroff style sheets

Petroff style sheets

Figure subfigures

Figure subfigures

Tick formatters

Tick formatters

Axis ticks

Axis ticks