From d71b44b8d700997d34e770e5802f226e0ed709ca Mon Sep 17 00:00:00 2001 From: Jody Klymak Date: Wed, 3 Oct 2018 16:41:08 -0700 Subject: [PATCH] DOC: fix CL tutorial to give same output from saved file and example --- doc/_static/constrained_layout/CL00.png | Bin 0 -> 38548 bytes doc/_static/constrained_layout/CL01.png | Bin 0 -> 10554 bytes doc/_static/constrained_layout/CL02.png | Bin 0 -> 10503 bytes .../intermediate/constrainedlayout_guide.py | 60 +++++++++++------- 4 files changed, 38 insertions(+), 22 deletions(-) create mode 100644 doc/_static/constrained_layout/CL00.png create mode 100644 doc/_static/constrained_layout/CL01.png create mode 100644 doc/_static/constrained_layout/CL02.png diff --git a/doc/_static/constrained_layout/CL00.png b/doc/_static/constrained_layout/CL00.png new file mode 100644 index 0000000000000000000000000000000000000000..5963429df0f8d7651ca6ccd57ff89d46b6384487 GIT binary patch literal 38548 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 LtI3tgng;(L=&-U4 literal 0 HcmV?d00001 diff --git a/tutorials/intermediate/constrainedlayout_guide.py b/tutorials/intermediate/constrainedlayout_guide.py index b1888d548522..f806f388d275 100644 --- a/tutorials/intermediate/constrainedlayout_guide.py +++ b/tutorials/intermediate/constrainedlayout_guide.py @@ -200,11 +200,10 @@ def example_plot(ax, fontsize=12, nodec=False): ############################################# # However, this will steal space from a subplot layout: -fig, axs = plt.subplots(2, 2, constrained_layout=True) -for ax in axs.flatten()[:-1]: - ax.plot(np.arange(10)) -axs[1, 1].plot(np.arange(10), label='This is a plot') -axs[1, 1].legend(loc='center left', bbox_to_anchor=(0.8, 0.5)) +fig, axs = plt.subplots(1, 2, figsize=(4, 2), constrained_layout=True) +axs[0].plot(np.arange(10)) +axs[1].plot(np.arange(10), label='This is a plot') +axs[1].legend(loc='center left', bbox_to_anchor=(0.8, 0.5)) ############################################# # In order for a legend or other artist to *not* steal space @@ -213,30 +212,47 @@ def example_plot(ax, fontsize=12, nodec=False): # cropped, but can be useful if the plot is subsequently called # with ``fig.savefig('outname.png', bbox_inches='tight')``. Note, # however, that the legend's ``get_in_layout`` status will have to be -# toggled again to make the saved file work: +# toggled again to make the saved file work, and we must manually +# trigger a draw if we want constrained_layout to adjust the size +# of the axes before printing. -fig, axs = plt.subplots(2, 2, constrained_layout=True) -for ax in axs.flatten()[:-1]: - ax.plot(np.arange(10)) -axs[1, 1].plot(np.arange(10), label='This is a plot') -leg = axs[1, 1].legend(loc='center left', bbox_to_anchor=(0.8, 0.5)) +fig, axs = plt.subplots(1, 2, figsize=(4, 2), constrained_layout=True) + +axs[0].plot(np.arange(10)) +axs[1].plot(np.arange(10), label='This is a plot') +leg = axs[1].legend(loc='center left', bbox_to_anchor=(0.8, 0.5)) leg.set_in_layout(False) -wanttoprint = False -if wanttoprint: - leg.set_in_layout(True) - fig.do_constrained_layout(False) - fig.savefig('outname.png', bbox_inches='tight') +# trigger a draw so that constrained_layout is executed once +# before we turn it off when printing.... +fig.canvas.draw() +# we want the legend included in the bbox_inches='tight' calcs. +leg.set_in_layout(True) +# we don't want the layout to change at this point. +fig.set_constrained_layout(False) +fig.savefig('CL01.png', bbox_inches='tight', dpi=100) ############################################# +# The saved file looks like: +# +# .. image:: /_static/constrained_layout/CL01.png +# :align: center +# # A better way to get around this awkwardness is to simply -# use a legend for the figure: -fig, axs = plt.subplots(2, 2, constrained_layout=True) -for ax in axs.flatten()[:-1]: - ax.plot(np.arange(10)) -lines = axs[1, 1].plot(np.arange(10), label='This is a plot') +# use the legend method provided by `.Figure.legend`: +fig, axs = plt.subplots(1, 2, figsize=(4, 2), constrained_layout=True) +axs[0].plot(np.arange(10)) +lines = axs[1].plot(np.arange(10), label='This is a plot') labels = [l.get_label() for l in lines] leg = fig.legend(lines, labels, loc='center left', - bbox_to_anchor=(0.8, 0.5), bbox_transform=axs[1, 1].transAxes) + bbox_to_anchor=(0.8, 0.5), bbox_transform=axs[1].transAxes) +fig.savefig('CL02.png', bbox_inches='tight', dpi=100) + +############################################# +# The saved file looks like: +# +# .. image:: /_static/constrained_layout/CL02.png +# :align: center +# ############################################################################### # Padding and Spacing