Thanks to visit codestin.com
Credit goes to github.com

Skip to content

DOC: point align-ylabel demo to new align-label functions #11424

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jun 21, 2018
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 55 additions & 23 deletions examples/pyplots/align_ylabels.py
Original file line number Diff line number Diff line change
@@ -1,40 +1,71 @@
"""
=============
Align Ylabels
=============
==============
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.

Align the axis labels between subplots.
"""
import numpy as np
import matplotlib.pyplot as plt

box = dict(facecolor='yellow', pad=5, alpha=0.2)
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)

fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2)
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()

# Fixing random state for reproducibility
np.random.seed(19680801)
#############################################################################
#
# .. 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
# `set_label_coords` method of the y-axis object. Note this requires we know
# a good offset value which is hardcoded.

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)
fig, axs = plt.subplots(2, 2)
fig.subplots_adjust(left=0.2, wspace=0.6)

ax3.set_ylabel('misaligned 2',bbox=box)
ax3.plot(np.random.rand(10))
make_plot(axs)

labelx = -0.3 # axes coords

ax2.set_title('ylabels aligned')
ax2.plot(2000*np.random.rand(10))
ax2.set_ylabel('aligned 1', bbox=box)
ax2.yaxis.set_label_coords(labelx, 0.5)
ax2.set_ylim(0, 2000)

ax4.plot(np.random.rand(10))
ax4.set_ylabel('aligned 2', bbox=box)
ax4.yaxis.set_label_coords(labelx, 0.5)
for j in range(2):
axs[j, 1].yaxis.set_label_coords(labelx, 0.5)

plt.show()

Expand All @@ -49,6 +80,7 @@
# in this example:

import matplotlib
matplotlib.figure.Figure.align_ylabels
matplotlib.axis.Axis.set_label_coords
matplotlib.axes.Axes.plot
matplotlib.pyplot.plot
Expand Down