Skip to content

Commit acc4e17

Browse files
committed
DOC: Update tutorial to explain colorbar API
1 parent 3d64d65 commit acc4e17

File tree

1 file changed

+27
-3
lines changed

1 file changed

+27
-3
lines changed

tutorials/intermediate/constrainedlayout_guide.py

+27-3
Original file line numberDiff line numberDiff line change
@@ -105,15 +105,39 @@ def example_plot(ax, fontsize=12, nodec=False):
105105
fig.colorbar(im, ax=ax, shrink=0.6)
106106

107107
############################################################################
108-
# If you specify multiple axes to the ``ax`` argument of ``colorbar``,
109-
# constrained_layout will take space from all axes that share the same
110-
# gridspec.
108+
# If you specify a list of axes (or other iterable container) to the
109+
# ``ax`` argument of ``colorbar``, constrained_layout will take space from all # axes that share the same gridspec.
111110

112111
fig, axs = plt.subplots(2, 2, figsize=(4, 4), constrained_layout=True)
113112
for ax in axs.flatten():
114113
im = ax.pcolormesh(arr, rasterized=True)
115114
fig.colorbar(im, ax=axs, shrink=0.6)
116115

116+
############################################################################
117+
# Note that there is a bit of a subtlety when specifying a single axes
118+
# as the parent. In the following, it might be desirable and expected
119+
# for the colorbars to line up, but they don't because the colorbar paired
120+
# with the bottom axes is tied to the subplotspec of the axes, and hence
121+
# shrinks when the gridspec-level colorbar is added.
122+
123+
fig, axs = plt.subplots(3, 1, figsize=(4, 4), constrained_layout=True)
124+
for ax in axs[:2]:
125+
im = ax.pcolormesh(arr, rasterized=True)
126+
fig.colorbar(im, ax=axs[:2], shrink=0.6)
127+
im = axs[2].pcolormesh(arr, rasterized=True)
128+
fig.colorbar(im, ax=axs[2], shrink=0.6)
129+
130+
############################################################################
131+
# The API to make a single-axes behave like a list of axes is to specify
132+
# it as a list (or other iterable container), as below:
133+
134+
fig, axs = plt.subplots(3, 1, figsize=(4, 4), constrained_layout=True)
135+
for ax in axs[:2]:
136+
im = ax.pcolormesh(arr, rasterized=True)
137+
fig.colorbar(im, ax=axs[:2], shrink=0.6)
138+
im = axs[2].pcolormesh(arr, rasterized=True)
139+
fig.colorbar(im, ax=[axs[2]], shrink=0.6)
140+
117141
####################################################
118142
# Suptitle
119143
# =========

0 commit comments

Comments
 (0)