.. only:: html
.. note::
:class: sphx-glr-download-link-note
Click :ref:`here ` to download the full example code
.. rst-class:: sphx-glr-example-title
.. _sphx_glr_gallery_pyplots_align_ylabels.py:
==============
Align y-labels
==============
Two methods are shown here, one using a short call to `.Figure.align_ylabels`
and the second a manual way to align the labels.
.. code-block:: default
import numpy as np
import matplotlib.pyplot as plt
def make_plot(axs):
box = dict(facecolor='yellow', pad=5, alpha=0.2)
# Fixing random state for reproducibility
np.random.seed(19680801)
ax1 = axs[0, 0]
ax1.plot(2000*np.random.rand(10))
ax1.set_title('ylabels not aligned')
ax1.set_ylabel('misaligned 1', bbox=box)
ax1.set_ylim(0, 2000)
ax3 = axs[1, 0]
ax3.set_ylabel('misaligned 2', bbox=box)
ax3.plot(np.random.rand(10))
ax2 = axs[0, 1]
ax2.set_title('ylabels aligned')
ax2.plot(2000*np.random.rand(10))
ax2.set_ylabel('aligned 1', bbox=box)
ax2.set_ylim(0, 2000)
ax4 = axs[1, 1]
ax4.plot(np.random.rand(10))
ax4.set_ylabel('aligned 2', bbox=box)
# Plot 1:
fig, axs = plt.subplots(2, 2)
fig.subplots_adjust(left=0.2, wspace=0.6)
make_plot(axs)
# just align the last column of axes:
fig.align_ylabels(axs[:, 1])
plt.show()
.. image:: /gallery/pyplots/images/sphx_glr_align_ylabels_001.png
:alt: ylabels not aligned, ylabels aligned
:class: sphx-glr-single-img
.. seealso::
`.Figure.align_ylabels` and `.Figure.align_labels` for a direct method
of doing the same thing.
Also :doc:`/gallery/subplots_axes_and_figures/align_labels_demo`
Or we can manually align the axis labels between subplots manually using the
`~.Axis.set_label_coords` method of the y-axis object. Note this requires
we know a good offset value which is hardcoded.
.. code-block:: default
fig, axs = plt.subplots(2, 2)
fig.subplots_adjust(left=0.2, wspace=0.6)
make_plot(axs)
labelx = -0.3 # axes coords
for j in range(2):
axs[j, 1].yaxis.set_label_coords(labelx, 0.5)
plt.show()
.. image:: /gallery/pyplots/images/sphx_glr_align_ylabels_002.png
:alt: ylabels not aligned, ylabels aligned
:class: sphx-glr-single-img
------------
References
""""""""""
The use of the following functions, methods, classes and modules is shown
in this example:
.. code-block:: default
import matplotlib
matplotlib.figure.Figure.align_ylabels
matplotlib.axis.Axis.set_label_coords
matplotlib.axes.Axes.plot
matplotlib.pyplot.plot
matplotlib.axes.Axes.set_title
matplotlib.axes.Axes.set_ylabel
matplotlib.axes.Axes.set_ylim
.. rst-class:: sphx-glr-script-out
Out:
.. code-block:: none
.. rst-class:: sphx-glr-timing
**Total running time of the script:** ( 0 minutes 1.273 seconds)
.. _sphx_glr_download_gallery_pyplots_align_ylabels.py:
.. only :: html
.. container:: sphx-glr-footer
:class: sphx-glr-footer-example
.. container:: sphx-glr-download sphx-glr-download-python
:download:`Download Python source code: align_ylabels.py `
.. container:: sphx-glr-download sphx-glr-download-jupyter
:download:`Download Jupyter notebook: align_ylabels.ipynb `
.. only:: html
.. rst-class:: sphx-glr-signature
Keywords: matplotlib code example, codex, python plot, pyplot
`Gallery generated by Sphinx-Gallery
`_