matplotlib 3.5.1

>>> """
=====================================
Resizing axes with constrained layout
=====================================

Constrained layout attempts to resize subplots in
a figure so that there are no overlaps between axes objects and labels
on the axes.

See :doc:`/tutorials/intermediate/constrainedlayout_guide` for more details and
:doc:`/tutorials/intermediate/tight_layout_guide` for an alternative.

"""
... 
... import matplotlib.pyplot as plt
... 
... 
... def example_plot(ax):
...  ax.plot([1, 2])
...  ax.set_xlabel('x-label', fontsize=12)
...  ax.set_ylabel('y-label', fontsize=12)
...  ax.set_title('Title', fontsize=14)
... 
... 
... ###############################################################################
... # If we don't use constrained_layout, then labels overlap the axes
... 
... fig, axs = plt.subplots(nrows=2, ncols=2, constrained_layout=False)
... 
... for ax in axs.flat:
...  example_plot(ax)
... 
... ###############################################################################
... # adding ``constrained_layout=True`` automatically adjusts.
... 
... fig, axs = plt.subplots(nrows=2, ncols=2, constrained_layout=True)
... 
... for ax in axs.flat:
...  example_plot(ax)
... 
... ###############################################################################
... # Below is a more complicated example using nested gridspecs.
... 
... fig = plt.figure(constrained_layout=True)
... 
... import matplotlib.gridspec as gridspec
... 
... gs0 = gridspec.GridSpec(1, 2, figure=fig)
... 
... gs1 = gridspec.GridSpecFromSubplotSpec(3, 1, subplot_spec=gs0[0])
... for n in range(3):
...  ax = fig.add_subplot(gs1[n])
...  example_plot(ax)
... 
... 
... gs2 = gridspec.GridSpecFromSubplotSpec(2, 1, subplot_spec=gs0[1])
... for n in range(2):
...  ax = fig.add_subplot(gs2[n])
...  example_plot(ax)
... 
... plt.show()
... 
... #############################################################################
... #
... # .. admonition:: References
... #
... # The use of the following functions, methods, classes and modules is shown
... # in this example:
... #
... # - `matplotlib.gridspec.GridSpec`
... # - `matplotlib.gridspec.GridSpecFromSubplotSpec`
...