From f8dfea7f7bc3f3fdc5d2755d63e236fe2d74958a Mon Sep 17 00:00:00 2001 From: Jody Klymak Date: Mon, 23 Oct 2017 11:11:54 -0700 Subject: [PATCH] ENH: Constrained layout geometry manager --- .../2017-09-29_JMK_constrained_layout_api.rst | 16 + .../next_whats_new/constrained_layout.rst | 59 + lib/matplotlib/_constrained_layout.py | 653 ++++++ lib/matplotlib/_layoutbox.py | 743 +++++++ lib/matplotlib/axes/_axes.py | 8 +- lib/matplotlib/axes/_base.py | 44 +- lib/matplotlib/axes/_subplots.py | 45 +- lib/matplotlib/backend_bases.py | 4 +- lib/matplotlib/backend_tools.py | 4 +- lib/matplotlib/colorbar.py | 61 +- lib/matplotlib/figure.py | 201 +- lib/matplotlib/gridspec.py | 145 +- lib/matplotlib/rcsetup.py | 13 + .../constrained_layout1.png | Bin 0 -> 23743 bytes .../constrained_layout10.png | Bin 0 -> 35956 bytes .../constrained_layout11.png | Bin 0 -> 38636 bytes .../constrained_layout11rat.png | Bin 0 -> 38505 bytes .../constrained_layout12.png | Bin 0 -> 44660 bytes .../constrained_layout13.png | Bin 0 -> 35515 bytes .../constrained_layout14.png | Bin 0 -> 40330 bytes .../constrained_layout15.png | Bin 0 -> 25452 bytes .../constrained_layout16.png | Bin 0 -> 23120 bytes .../constrained_layout2.png | Bin 0 -> 34397 bytes .../constrained_layout3.png | Bin 0 -> 52171 bytes .../constrained_layout4.pdf | Bin 0 -> 16636 bytes .../constrained_layout4.png | Bin 0 -> 41172 bytes .../constrained_layout4.svg | 1933 +++++++++++++++++ .../constrained_layout5.png | Bin 0 -> 35858 bytes .../constrained_layout6.png | Bin 0 -> 38503 bytes .../constrained_layout7.png | Bin 0 -> 43862 bytes .../constrained_layout8.png | Bin 0 -> 35732 bytes .../constrained_layout9.png | Bin 0 -> 35005 bytes .../tests/test_constrainedlayout.py | 347 +++ matplotlibrc.template | 4 + setupext.py | 1 + .../intermediate/constrainedlayout_guide.py | 700 ++++++ tutorials/intermediate/tight_layout_guide.py | 2 + 37 files changed, 4918 insertions(+), 65 deletions(-) create mode 100644 doc/api/api_changes/2017-09-29_JMK_constrained_layout_api.rst create mode 100644 doc/users/next_whats_new/constrained_layout.rst create mode 100644 lib/matplotlib/_constrained_layout.py create mode 100644 lib/matplotlib/_layoutbox.py create mode 100644 lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout1.png create mode 100644 lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout10.png create mode 100644 lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout11.png create mode 100644 lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout11rat.png create mode 100644 lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout12.png create mode 100644 lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout13.png create mode 100644 lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout14.png create mode 100644 lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout15.png create mode 100644 lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout16.png create mode 100644 lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout2.png create mode 100644 lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout3.png create mode 100644 lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout4.pdf create mode 100644 lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout4.png create mode 100644 lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout4.svg create mode 100644 lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout5.png create mode 100644 lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout6.png create mode 100644 lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout7.png create mode 100644 lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout8.png create mode 100644 lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout9.png create mode 100644 lib/matplotlib/tests/test_constrainedlayout.py create mode 100644 tutorials/intermediate/constrainedlayout_guide.py diff --git a/doc/api/api_changes/2017-09-29_JMK_constrained_layout_api.rst b/doc/api/api_changes/2017-09-29_JMK_constrained_layout_api.rst new file mode 100644 index 000000000000..05e54d67f4c0 --- /dev/null +++ b/doc/api/api_changes/2017-09-29_JMK_constrained_layout_api.rst @@ -0,0 +1,16 @@ +API changes for ``constrained_layout`` +---------------------------------------- + +The new constrained_layout functionality has some minor (largely backwards- +compatible) API changes. See +:ref:`sphx_glr_tutorials_intermediate_constrainedlayout_guide.py` for +more details on this functionality. + +This requires a new dependency on kiwisolver_. + +_https://github.com/nucleic/kiwi + +kwarg ``fig`` deprectated in `.GridSpec.get_subplot_params` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Use ``figure`` instead of ``fig``, which is now deprecated. diff --git a/doc/users/next_whats_new/constrained_layout.rst b/doc/users/next_whats_new/constrained_layout.rst new file mode 100644 index 000000000000..a1af56601549 --- /dev/null +++ b/doc/users/next_whats_new/constrained_layout.rst @@ -0,0 +1,59 @@ +Constrained Layout Manager +--------------------------- + +.. warning:: + + Constrained Layout is **experimental**. The + behaviour and API are subject to change, or the whole functionality + may be removed without a deprecation period. + + +A new method to automatically decide spacing between subplots and their +organizing ``GridSpec`` instances has been added. It is meant to +replace the venerable ``tight_layout`` method. It is invoked via +a new ``constrained_layout=True`` kwarg to +`~.figure.Figure` or `~.figure.subplots`. + +There are new ``rcParams`` for this package, and spacing can be +more finely tuned with the new `~.set_constrained_layout_pads`. + +Features include: + + - Automatic spacing for subplots with a fixed-size padding in inches around + subplots and all their decorators, and space between as a fraction + of subplot size between subplots. + - Spacing for `~.figure.suptitle`, and colorbars that are attached to + more than one axes. + - Nested `~.GridSpec` layouts using `~.GridSpecFromSubplotSpec`. + + For more details and capabilities please see the new tutorial: + :doc:`/tutorials/intermediate/constrainedlayout_guide` + +Note the new API to access this: + +New ``plt.figure`` and ``plt.subplots`` kwarg: ``constrained_layout`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:meth:`~matplotlib.pyplot.figure` and :meth:`~matplotlib.pyplot.subplots` +can now be called with ``constrained_layout=True`` kwarg to enable +constrained_layout. + +New ``ax.set_position`` behaviour +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:meth:`~matplotlib.axes.set_position` now makes the specified axis no +longer responsive to ``constrained_layout``, consistent with the idea that the +user wants to place an axis manually. + +Internally, this means that old ``ax.set_position`` calls *inside* the library +are changed to private ``ax._set_position`` calls so that +``constrained_layout`` will still work with these axes. + +New ``figure`` kwarg for ``GridSpec`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +In order to facilitate ``constrained_layout``, ``GridSpec`` now accepts a +``figure`` keyword. This is backwards compatible, in that not supplying this +will simply cause ``constrained_layout`` to not operate on the subplots +orgainzed by this ``GridSpec`` instance. Routines that use ``GridSpec`` (e.g. +``fig.subplots``) have been modified to pass the figure to ``GridSpec``. diff --git a/lib/matplotlib/_constrained_layout.py b/lib/matplotlib/_constrained_layout.py new file mode 100644 index 000000000000..3561fbfef2b0 --- /dev/null +++ b/lib/matplotlib/_constrained_layout.py @@ -0,0 +1,653 @@ +""" +This module provides the routine to adjust subplot layouts so that there are +no overlapping axes or axes decorations. All axes decorations are dealt with +(labels, ticks, titles, ticklabels) and some dependent artists are also dealt +with (colorbar, suptitle, legend). + +Layout is done via :meth:`~matplotlib.gridspec`, with one constraint per +gridspec, so it is possible to have overlapping axes if the gridspecs +overlap (i.e. using :meth:`~matplotlib.gridspec.GridSpecFromSubplotSpec`). +Axes placed using ``figure.subplots()`` or ``figure.add_subplots()`` will +participate in the layout. Axes manually placed via ``figure.add_axes()`` +will not. + +See Tutorial: :doc:`/tutorials/intermediate/constrainedlayout_guide` + +""" + +# Development Notes: + +# What gets a layoutbox: +# - figure +# - gridspec +# - subplotspec +# EITHER: +# - axes + pos for the axes (i.e. the total area taken by axis and +# the actual "position" argument that needs to be sent to +# ax.set_position.) +# - The axes layout box will also encomapss the legend, and that is +# how legends get included (axes legeneds, not figure legends) +# - colorbars are sibblings of the axes if they are single-axes +# colorbars +# OR: +# - a gridspec can be inside a subplotspec. +# - subplotspec +# EITHER: +# - axes... +# OR: +# - gridspec... with arbitrary nesting... +# - colorbars are siblings of the subplotspecs if they are multi-axes +# colorbars. +# - suptitle: +# - right now suptitles are just stacked atop everything else in figure. +# Could imagine suptitles being gridspec suptitles, but not implimented +# +# Todo: AnchoredOffsetbox connected to gridspecs or axes. This would +# be more general way to add extra-axes annotations. + +from __future__ import (absolute_import, division, print_function, + unicode_literals) + +import numpy as np +import logging +import warnings + +from matplotlib.legend import Legend +import matplotlib.transforms as transforms +import matplotlib._layoutbox as layoutbox + +_log = logging.getLogger(__name__) + + +def get_axall_tightbbox(ax, renderer): + ''' + Get the tight_bbox of the axis ax, and any dependent decorations, like + a `Legend` instance. + ''' + + # main bbox of the axis.... + bbox = ax.get_tightbbox(renderer=renderer) + # now add the possibility of the legend... + for child in ax.get_children(): + if isinstance(child, Legend): + bboxn = child._legend_box.get_window_extent(renderer) + bbox = transforms.Bbox.union([bbox, bboxn]) + # add other children here.... + return bbox + + +def in_same_column(ss0, ssc): + nrows, ncols = ss0.get_gridspec().get_geometry() + + if ss0.num2 is None: + ss0.num2 = ss0.num1 + rownum0min, colnum0min = divmod(ss0.num1, ncols) + rownum0max, colnum0max = divmod(ss0.num2, ncols) + if ssc.num2 is None: + ssc.num2 = ssc.num1 + rownumCmin, colnumCmin = divmod(ssc.num1, ncols) + rownumCmax, colnumCmax = divmod(ssc.num2, ncols) + if colnum0min >= colnumCmin and colnum0min <= colnumCmax: + return True + if colnum0max >= colnumCmin and colnum0max <= colnumCmax: + return True + return False + + +def in_same_row(ss0, ssc): + nrows, ncols = ss0.get_gridspec().get_geometry() + + if ss0.num2 is None: + ss0.num2 = ss0.num1 + rownum0min, colnum0min = divmod(ss0.num1, ncols) + rownum0max, colnum0max = divmod(ss0.num2, ncols) + if ssc.num2 is None: + ssc.num2 = ssc.num1 + rownumCmin, colnumCmin = divmod(ssc.num1, ncols) + rownumCmax, colnumCmax = divmod(ssc.num2, ncols) + if rownum0min >= rownumCmin and rownum0min <= rownumCmax: + return True + if rownum0max >= rownumCmin and rownum0max <= rownumCmax: + return True + return False + + +###################################################### +def do_constrained_layout(fig, renderer, h_pad, w_pad, + hspace=None, wspace=None): + + """ + Do the constrained_layout. Called at draw time in + ``figure.constrained_layout()`` + + Parameters + ---------- + + + fig: Figure + is the ``figure`` instance to do the layout in. + + renderer: Renderer + the renderer to use. + + h_pad, w_pad : float + are in figure-normalized units, and are a padding around the axes + elements. + + hspace, wspace : float + are in fractions of the subplot sizes. + + """ + + ''' Steps: + + 1. get a list of unique gridspecs in this figure. Each gridspec will be + constrained separately. + 2. Check for gaps in the gridspecs. i.e. if not every axes slot in the + gridspec has been filled. If empty, add a ghost axis that is made so + that it cannot be seen (though visible=True). This is needed to make + a blank spot in the layout. + 3. Compare the tight_bbox of each axes to its `position`, and assume that + the difference is the space needed by the elements around the edge of + the axes (decorations) like the title, ticklabels, x-labels, etc. This + can include legends who overspill the axes boundaries. + 4. Constrain gridspec elements to line up: + a) if colnum0 neq colnumC, the two subplotspecs are stacked next to + each other, with the appropriate order. + b) if colnum0 == columnC line up the left or right side of the + _poslayoutbox (depending if it is the min or max num that is equal). + c) do the same for rows... + 5. The above doesn't constrain relative sizes of the _poslayoutboxes at + all, and indeed zero-size is a solution that the solver often finds more + convenient than expanding the sizes. Right now the solution is to compare + subplotspec sizes (i.e. drowsC and drows0) and constrain the larger + _poslayoutbox to be larger than the ratio of the sizes. i.e. if drows0 > + drowsC, then ax._poslayoutbox > axc._poslayoutbox * drowsC / drows0. This + works fine *if* the decorations are similar between the axes. If the + larger subplotspec has much larger axes decorations, then the constraint + above is incorrect. + + We need the greater than in the above, in general, rather than an equals + sign. Consider the case of the left column having 2 rows, and the right + column having 1 row. We want the top and bottom of the _poslayoutboxes to + line up. So that means if there are decorations on the left column axes + they will be smaller than half as large as the right hand axis. + + This can break down if the decoration size for the right hand axis (the + margins) is very large. There must be a math way to check for this case. + + ''' + invTransFig = fig.transFigure.inverted().transform_bbox + + # list of unique gridspecs that contain child axes: + gss = set([]) + for ax in fig.axes: + if hasattr(ax, 'get_subplotspec'): + gs = ax.get_subplotspec().get_gridspec() + if gs._layoutbox is not None: + gss.add(gs) + if len(gss) == 0: + warnings.warn('There are no gridspecs with layoutboxes. ' + 'Possibly did not call parent GridSpec with the figure= ' + 'keyword') + + # check for unoccupied gridspec slots and make ghost axes for these + # slots... Do for each gs separately. This is a pretty big kludge + # but shoudn't have too much ill effect. The worst is that + # someone querrying the figure will wonder why there are more + # axes than they thought. + if fig._layoutbox.constrained_layout_called < 1: + for gs in gss: + nrows, ncols = gs.get_geometry() + hassubplotspec = np.zeros(nrows * ncols, dtype=bool) + axs = [] + for ax in fig.axes: + if (hasattr(ax, 'get_subplotspec') + and ax._layoutbox is not None + and ax.get_subplotspec().get_gridspec() == gs): + axs += [ax] + for ax in axs: + ss0 = ax.get_subplotspec() + if ss0.num2 is None: + ss0.num2 = ss0.num1 + hassubplotspec[ss0.num1:(ss0.num2 + 1)] = True + for nn, hss in enumerate(hassubplotspec): + if not hss: + # this gridspec slot doesn't have an axis so we + # make a "ghost". + ax = fig.add_subplot(gs[nn]) + ax.set_frame_on(False) + ax.set_xticks([]) + ax.set_yticks([]) + ax.set_facecolor((1, 0, 0, 0)) + + # for each axes, make a margin between the *pos* layoutbox and the + # *axes* layoutbox be a minimum size that can accomodate the + # decorations on the axis. + for ax in fig.axes: + _log.debug(ax._layoutbox) + if ax._layoutbox is not None: + pos = ax.get_position(original=True) + tightbbox = get_axall_tightbbox(ax, renderer) + bbox = invTransFig(tightbbox) + # use stored h_pad if it exists + h_padt = ax._poslayoutbox.h_pad + if h_padt is None: + h_padt = h_pad + w_padt = ax._poslayoutbox.w_pad + if w_padt is None: + w_padt = w_pad + ax._poslayoutbox.edit_left_margin_min(-bbox.x0 + + pos.x0 + w_padt) + ax._poslayoutbox.edit_right_margin_min(bbox.x1 - + pos.x1 + w_padt) + ax._poslayoutbox.edit_bottom_margin_min( + -bbox.y0 + pos.y0 + h_padt) + ax._poslayoutbox.edit_top_margin_min(bbox.y1-pos.y1+h_padt) + _log.debug('left %f', (-bbox.x0 + pos.x0 + w_pad)) + _log.debug('right %f', (bbox.x1 - pos.x1 + w_pad)) + _log.debug('bottom %f', (-bbox.y0 + pos.y0 + h_padt)) + # Sometimes its possible for the solver to collapse + # rather than expand axes, so they all have zero height + # or width. This stops that... It *should* have been + # taken into account w/ pref_width... + if fig._layoutbox.constrained_layout_called < 1: + ax._poslayoutbox.constrain_height_min(20, strength='weak') + ax._poslayoutbox.constrain_width_min(20, strength='weak') + ax._layoutbox.constrain_height_min(20, strength='weak') + ax._layoutbox.constrain_width_min(20, strength='weak') + ax._poslayoutbox.constrain_top_margin(0, strength='weak') + ax._poslayoutbox.constrain_bottom_margin(0, + strength='weak') + ax._poslayoutbox.constrain_right_margin(0, strength='weak') + ax._poslayoutbox.constrain_left_margin(0, strength='weak') + + # do layout for suptitle. + if fig._suptitle is not None: + sup = fig._suptitle + bbox = invTransFig(sup.get_window_extent(renderer=renderer)) + height = bbox.y1 - bbox.y0 + sup._layoutbox.edit_height(height+h_pad) + + # OK, the above lines up ax._poslayoutbox with ax._layoutbox + # now we need to + # 1) arrange the subplotspecs. We do it at this level because + # the subplotspecs are meant to contain other dependent axes + # like colorbars or legends. + # 2) line up the right and left side of the ax._poslayoutbox + # that have the same subplotspec maxes. + + if fig._layoutbox.constrained_layout_called < 1: + + # arrange the subplotspecs... This is all done relative to each + # other. Some subplotspecs conatain axes, and others contain gridspecs + # the ones that contain gridspecs are a set proportion of their + # parent gridspec. The ones that contain axes are not so constrained. + figlb = fig._layoutbox + for child in figlb.children: + if child._is_gridspec_layoutbox(): + # farm the gridspec layout out. + # + # This routine makes all the subplot spec containers + # have the correct arrangement. It just stacks the + # subplot layoutboxes in the correct order... + arange_subplotspecs(child, hspace=hspace, wspace=wspace) + + # - Align right/left and bottom/top spines of appropriate subplots. + # - Compare size of subplotspec including height and width ratios + # and make sure that the axes spines are at least as large + # as they should be. + for gs in gss: + # for each gridspec... + nrows, ncols = gs.get_geometry() + width_ratios = gs.get_width_ratios() + height_ratios = gs.get_height_ratios() + if width_ratios is None: + width_ratios = np.ones(ncols) + if height_ratios is None: + height_ratios = np.ones(nrows) + + # get axes in this gridspec.... + axs = [] + for ax in fig.axes: + if (hasattr(ax, 'get_subplotspec') + and ax._layoutbox is not None): + if ax.get_subplotspec().get_gridspec() == gs: + axs += [ax] + for ax in axs: + axs = axs[1:] + # now compare ax to all the axs: + # + # If the subplotspecs have the same colnumXmax, then line + # up their right sides. If they have the same min, then + # line up their left sides (and vertical equivalents). + ss0 = ax.get_subplotspec() + if ss0.num2 is None: + ss0.num2 = ss0.num1 + rownum0min, colnum0min = divmod(ss0.num1, ncols) + rownum0max, colnum0max = divmod(ss0.num2, ncols) + for axc in axs: + ssc = axc.get_subplotspec() + # get the rownums and colnums + rownumCmin, colnumCmin = divmod(ssc.num1, ncols) + if ssc.num2 is None: + ssc.num2 = ssc.num1 + rownumCmax, colnumCmax = divmod(ssc.num2, ncols) + + # Horizontally align axes spines if they have the + # same min or max: + if colnum0min == colnumCmin: + # we want the _poslayoutboxes to line up on left + # side of the axes spines... + layoutbox.align([ax._poslayoutbox, + axc._poslayoutbox], + 'left') + if colnum0max == colnumCmax: + # line up right sides of _poslayoutbox + layoutbox.align([ax._poslayoutbox, + axc._poslayoutbox], + 'right') + # Vertically align axes spines if they have the + # same min or max: + if rownum0min == rownumCmin: + # line up top of _poslayoutbox + _log.debug('rownum0min == rownumCmin') + layoutbox.align([ax._poslayoutbox, axc._poslayoutbox], + 'top') + if rownum0max == rownumCmax: + # line up bottom of _poslayoutbox + _log.debug('rownum0max == rownumCmax') + layoutbox.align([ax._poslayoutbox, axc._poslayoutbox], + 'bottom') + + ########### + # Now we make the widths and heights similar. + # This allows vertically stacked subplots to have + # different sizes if they occupy different ammounts + # of the gridspec: i.e. + # gs = gridspec.GridSpec(3,1) + # ax1 = gs[0,:] + # ax2 = gs[1:,:] + # then drows0 = 1, and drowsC = 2, and ax2 + # should be at least twice as large as ax1. + # For height, this only needs to be done if the + # subplots share a column. For width if they + # share a row. + widthC = np.sum( + width_ratios[colnumCmin:(colnumCmax + 1)]) + width0 = np.sum( + width_ratios[colnum0min:(colnum0max + 1)]) + heightC = np.sum( + height_ratios[rownumCmin:(rownumCmax + 1)]) + height0 = np.sum( + height_ratios[rownum0min:(rownum0max + 1)]) + + drowsC = (rownumCmax - rownumCmin + 1) + drows0 = (rownum0max - rownum0min + 1) + dcolsC = (colnumCmax - colnumCmin + 1) + dcols0 = (colnum0max - colnum0min + 1) + + if drowsC > drows0: + if in_same_column(ss0, ssc): + ax._poslayoutbox.constrain_height_min( + axc._poslayoutbox.height * drows0 * height0 + / drowsC / heightC) + elif drowsC < drows0: + if in_same_column(ss0, ssc): + axc._poslayoutbox.constrain_height_min( + ax._poslayoutbox.height * drowsC * heightC + / drows0 / drowsC) + else: + ax._poslayoutbox.constrain_height( + axc._poslayoutbox.height * height0 / heightC) + # widths... + if dcolsC > dcols0: + if in_same_row(ss0, ssc): + ax._poslayoutbox.constrain_width_min( + axc._poslayoutbox.width * dcols0 * width0 + / dcolsC / widthC) + elif dcolsC < dcols0: + if in_same_row(ss0, ssc): + axc._poslayoutbox.constrain_width_min( + ax._poslayoutbox.width * dcolsC * widthC + / dcols0 / width0) + else: + ax._poslayoutbox.constrain_width( + axc._poslayoutbox.width * width0 / widthC) + + fig._layoutbox.constrained_layout_called += 1 + fig._layoutbox.update_variables() + # Now set the position of the axes... + for ax in fig.axes: + if ax._layoutbox is not None: + newpos = ax._poslayoutbox.get_rect() + _log.debug('newpos %r', newpos) + # Now set the new position. + # ax.set_position will zero out the layout for + # this axis, allowing users to hard-code the position, + # so this does the same w/o zeroing layout. + ax._set_position(newpos, which='original') + + +def arange_subplotspecs(gs, hspace=0, wspace=0): + """ + arange the subplotspec children of this gridspec, and then recursively + do the same of any gridspec children of those gridspecs... + """ + sschildren = [] + for child in gs.children: + if child._is_subplotspec_layoutbox(): + for child2 in child.children: + # check for gridspec children... + name = (child2.name).split('.')[-1][:-3] + if name == 'gridspec': + arange_subplotspecs(child2, hspace=hspace, wspace=wspace) + sschildren += [child] + # now arrange the subplots... + for child0 in sschildren: + ss0 = child0.artist + nrows, ncols = ss0.get_gridspec().get_geometry() + if ss0.num2 is None: + ss0.num2 = ss0.num1 + rowNum0min, colNum0min = divmod(ss0.num1, ncols) + rowNum0max, colNum0max = divmod(ss0.num2, ncols) + sschildren = sschildren[1:] + for childc in sschildren: + ssc = childc.artist + rowNumCmin, colNumCmin = divmod(ssc.num1, ncols) + if ssc.num2 is None: + ssc.num2 = ssc.num1 + rowNumCmax, colNumCmax = divmod(ssc.num2, ncols) + # OK, this tells us the relative layout of ax + # with axc + thepad = wspace / ncols + if colNum0max < colNumCmin: + layoutbox.hstack([ss0._layoutbox, ssc._layoutbox], + padding=thepad) + if colNumCmax < colNum0min: + layoutbox.hstack([ssc._layoutbox, ss0._layoutbox], + padding=thepad) + + #### + # vertical alignment + thepad = hspace / nrows + if rowNum0max < rowNumCmin: + layoutbox.vstack([ss0._layoutbox, + ssc._layoutbox], + padding=thepad) + if rowNumCmax < rowNum0min: + layoutbox.vstack([ssc._layoutbox, + ss0._layoutbox], + padding=thepad) + + +def layoutcolorbarsingle(ax, cax, shrink, aspect, location, pad=0.05): + """ + Do the layout for a colorbar, to not oeverly pollute colorbar.py + + `pad` is in fraction of the original axis size. + """ + axlb = ax._layoutbox + axpos = ax._poslayoutbox + axsslb = ax.get_subplotspec()._layoutbox + lb = layoutbox.LayoutBox( + parent=axsslb, + name=axsslb.name + '.cbar', + artist=cax) + + if location in ('left', 'right'): + lbpos = layoutbox.LayoutBox( + parent=lb, + name=lb.name + '.pos', + tightwidth=False, + pos=True, + subplot=False, + artist=cax) + + if location == 'right': + # arrange to right of parent axis + layoutbox.hstack([axlb, lb], padding=pad * axlb.width, + strength='strong') + else: + layoutbox.hstack([lb, axlb], padding=pad * axlb.width) + # constrain the height and center... + layoutbox.match_heights([axpos, lbpos], [1, shrink]) + layoutbox.align([axpos, lbpos], 'v_center') + # set the width of the pos box + lbpos.constrain_width(shrink * axpos.height * (1/aspect), + strength='strong') + elif location in ('bottom', 'top'): + lbpos = layoutbox.LayoutBox( + parent=lb, + name=lb.name + '.pos', + tightheight=True, + pos=True, + subplot=False, + artist=cax) + + if location == 'bottom': + layoutbox.vstack([axlb, lb], padding=pad * axlb.height) + else: + layoutbox.vstack([lb, axlb], padding=pad * axlb.height) + # constrain the height and center... + layoutbox.match_widths([axpos, lbpos], + [1, shrink], strength='strong') + layoutbox.align([axpos, lbpos], 'h_center') + # set the height of the pos box + lbpos.constrain_height(axpos.width * aspect * shrink, + strength='medium') + + return lb, lbpos + + +def layoutcolorbargridspec(parents, cax, shrink, aspect, location, pad=0.05): + """ + Do the layout for a colorbar, to not oeverly pollute colorbar.py + + `pad` is in fraction of the original axis size. + """ + + gs = parents[0].get_subplotspec().get_gridspec() + # parent layout box.... + gslb = gs._layoutbox + + lb = layoutbox.LayoutBox(parent=gslb.parent, + name=gslb.parent.name + '.cbar', + artist=cax) + if location in ('left', 'right'): + lbpos = layoutbox.LayoutBox( + parent=lb, + name=lb.name + '.pos', + tightwidth=False, + pos=True, + subplot=False, + artist=cax) + + if location == 'right': + # arrange to right of the gridpec sibbling + layoutbox.hstack([gslb, lb], padding=pad * gslb.width, + strength='strong') + else: + layoutbox.hstack([lb, gslb], padding=pad * gslb.width) + # constrain the height and center... + # This isn't quite right. We'd like the colorbar + # pos to line up w/ the axes poss, not the size of the + # gs. + maxrow = -100000 + minrow = 1000000 + maxax = None + minax = None + + for ax in parents: + subspec = ax.get_subplotspec() + nrows, ncols = subspec.get_gridspec().get_geometry() + for num in [subspec.num1, subspec.num2]: + rownum1, colnum1 = divmod(subspec.num1, ncols) + if rownum1 > maxrow: + maxrow = rownum1 + maxax = ax + if rownum1 < minrow: + minrow = rownum1 + minax = ax + # invert the order so these are bottom to top: + maxposlb = minax._poslayoutbox + minposlb = maxax._poslayoutbox + # now we want the height of the colorbar pos to be + # set by the top and bottom of these poss + # bottom top + # b t + # h = (top-bottom)*shrink + # b = bottom + (top-bottom - h) / 2. + lbpos.constrain_height( + (maxposlb.top - minposlb.bottom) * + shrink, strength='strong') + lbpos.constrain_bottom( + (maxposlb.top - minposlb.bottom) * + (1 - shrink)/2 + minposlb.bottom, + strength='strong') + + # set the width of the pos box + lbpos.constrain_width(lbpos.height * (shrink / aspect), + strength='strong') + elif location in ('bottom', 'top'): + lbpos = layoutbox.LayoutBox( + parent=lb, + name=lb.name + '.pos', + tightheight=True, + pos=True, + subplot=False, + artist=cax) + + if location == 'bottom': + layoutbox.vstack([gslb, lb], padding=pad * gslb.width) + else: + layoutbox.vstack([lb, gslb], padding=pad * gslb.width) + + maxcol = -100000 + mincol = 1000000 + maxax = None + minax = None + + for ax in parents: + subspec = ax.get_subplotspec() + nrows, ncols = subspec.get_gridspec().get_geometry() + for num in [subspec.num1, subspec.num2]: + rownum1, colnum1 = divmod(subspec.num1, ncols) + if colnum1 > maxcol: + maxcol = colnum1 + maxax = ax + if rownum1 < mincol: + mincol = colnum1 + minax = ax + maxposlb = maxax._poslayoutbox + minposlb = minax._poslayoutbox + lbpos.constrain_width((maxposlb.right - minposlb.left) * + shrink) + lbpos.constrain_left( + (maxposlb.right - minposlb.left) * + (1-shrink)/2 + minposlb.left) + # set the height of the pos box + lbpos.constrain_height(lbpos.width * shrink * aspect, + strength='medium') + + return lb, lbpos diff --git a/lib/matplotlib/_layoutbox.py b/lib/matplotlib/_layoutbox.py new file mode 100644 index 000000000000..ad7c199de092 --- /dev/null +++ b/lib/matplotlib/_layoutbox.py @@ -0,0 +1,743 @@ +# -*- coding: utf-8 -*- +""" + +Conventions: + +"constrain_x" means to constrain the variable with either +another kiwisolver variable, or a float. i.e. `constrain_width(0.2)` +will set a constraint that the width has to be 0.2 and this constraint is +permanent - i.e. it will not be removed if it becomes obsolete. + +"edit_x" means to set x to a value (just a float), and that this value can +change. So `edit_width(0.2)` will set width to be 0.2, but `edit_width(0.3)` +will allow it to change to 0.3 later. Note that these values are still just +"suggestions" in `kiwisolver` parlance, and could be over-ridden by +other constrains. + +""" + +from __future__ import (absolute_import, division, print_function, + unicode_literals) + +import itertools +import kiwisolver as kiwi +import logging +import numpy as np +import warnings + +import matplotlib + +_log = logging.getLogger(__name__) + + +# renderers can be complicated +def get_renderer(fig): + if fig._cachedRenderer: + renderer = fig._cachedRenderer + else: + canvas = fig.canvas + if canvas and hasattr(canvas, "get_renderer"): + renderer = canvas.get_renderer() + else: + # not sure if this can happen + # seems to with PDF... + _log.info("constrained_layout : falling back to Agg renderer") + from matplotlib.backends.backend_agg import FigureCanvasAgg + canvas = FigureCanvasAgg(fig) + renderer = canvas.get_renderer() + + return renderer + + +class LayoutBox(object): + """ + Basic rectangle representation using kiwi solver variables + """ + + def __init__(self, parent=None, name='', tightwidth=False, + tightheight=False, artist=None, + lower_left=(0, 0), upper_right=(1, 1), pos=False, + subplot=False, h_pad=None, w_pad=None): + Variable = kiwi.Variable + self.parent = parent + self.name = name + sn = self.name + '_' + if parent is None: + self.solver = kiwi.Solver() + self.constrained_layout_called = 0 + else: + self.solver = parent.solver + self.constrained_layout_called = None + # parent wants to know about this child! + parent.add_child(self) + # keep track of artist associated w/ this layout. Can be none + self.artist = artist + # keep track if this box is supposed to be a pos that is constrained + # by the parent. + self.pos = pos + # keep track of whether we need to match this subplot up with others. + self.subplot = subplot + + # we need the str below for Py 2 which complains the string is unicode + self.top = Variable(str(sn + 'top')) + self.bottom = Variable(str(sn + 'bottom')) + self.left = Variable(str(sn + 'left')) + self.right = Variable(str(sn + 'right')) + + self.width = Variable(str(sn + 'width')) + self.height = Variable(str(sn + 'height')) + self.h_center = Variable(str(sn + 'h_center')) + self.v_center = Variable(str(sn + 'v_center')) + + self.min_width = Variable(str(sn + 'min_width')) + self.min_height = Variable(str(sn + 'min_height')) + self.pref_width = Variable(str(sn + 'pref_width')) + self.pref_height = Variable(str(sn + 'pref_height')) + # margis are only used for axes-position layout boxes. maybe should + # be a separate subclass: + self.left_margin = Variable(str(sn + 'left_margin')) + self.right_margin = Variable(str(sn + 'right_margin')) + self.bottom_margin = Variable(str(sn + 'bottom_margin')) + self.top_margin = Variable(str(sn + 'top_margin')) + # mins + self.left_margin_min = Variable(str(sn + 'left_margin_min')) + self.right_margin_min = Variable(str(sn + 'right_margin_min')) + self.bottom_margin_min = Variable(str(sn + 'bottom_margin_min')) + self.top_margin_min = Variable(str(sn + 'top_margin_min')) + + right, top = upper_right + left, bottom = lower_left + self.tightheight = tightheight + self.tightwidth = tightwidth + self.add_constraints() + self.children = [] + self.subplotspec = None + if self.pos: + self.constrain_margins() + self.h_pad = h_pad + self.w_pad = w_pad + + def constrain_margins(self): + """ + Only do this for pos. This sets a variable distance + margin between the position of the axes and the outer edge of + the axes. + + Margins are variable because they change with the fogure size. + + Margin minimums are set to make room for axes decorations. However, + the margins can be larger if we are mathicng the position size to + otehr axes. + """ + sol = self.solver + + # left + if not sol.hasEditVariable(self.left_margin_min): + sol.addEditVariable(self.left_margin_min, 'strong') + sol.suggestValue(self.left_margin_min, 0.0001) + c = (self.left_margin == self.left - self.parent.left) + self.solver.addConstraint(c | 'required') + c = (self.left_margin >= self.left_margin_min) + self.solver.addConstraint(c | 'strong') + + # right + if not sol.hasEditVariable(self.right_margin_min): + sol.addEditVariable(self.right_margin_min, 'strong') + sol.suggestValue(self.right_margin_min, 0.0001) + c = (self.right_margin == self.parent.right - self.right) + self.solver.addConstraint(c | 'required') + c = (self.right_margin >= self.right_margin_min) + self.solver.addConstraint(c | 'required') + # bottom + if not sol.hasEditVariable(self.bottom_margin_min): + sol.addEditVariable(self.bottom_margin_min, 'strong') + sol.suggestValue(self.bottom_margin_min, 0.0001) + c = (self.bottom_margin == self.bottom - self.parent.bottom) + self.solver.addConstraint(c | 'required') + c = (self.bottom_margin >= self.bottom_margin_min) + self.solver.addConstraint(c | 'required') + # top + if not sol.hasEditVariable(self.top_margin_min): + sol.addEditVariable(self.top_margin_min, 'strong') + sol.suggestValue(self.top_margin_min, 0.0001) + c = (self.top_margin == self.parent.top - self.top) + self.solver.addConstraint(c | 'required') + c = (self.top_margin >= self.top_margin_min) + self.solver.addConstraint(c | 'required') + + def add_child(self, child): + self.children += [child] + + def remove_child(self, child): + try: + self.children.remove(child) + except ValueError: + _log.info("Tried to remove child that doesn't belong to parent") + + def add_constraints(self): + sol = self.solver + # never let width and height go negative. + for i in [self.min_width, self.min_height]: + sol.addEditVariable(i, 1e9) + sol.suggestValue(i, 0.0) + # define relation ships between things thing width and right and left + self.hard_constraints() + # self.soft_constraints() + if self.parent: + self.parent_constrain() + # sol.updateVariables() + + def parent_constrain(self): + parent = self.parent + hc = [self.left >= parent.left, + self.bottom >= parent.bottom, + self.top <= parent.top, + self.right <= parent.right] + for c in hc: + self.solver.addConstraint(c | 'required') + + def hard_constraints(self): + hc = [self.width == self.right - self.left, + self.height == self.top - self.bottom, + self.h_center == (self.left + self.right) * 0.5, + self.v_center == (self.top + self.bottom) * 0.5, + self.width >= self.min_width, + self.height >= self.min_height] + for c in hc: + self.solver.addConstraint(c | 'required') + + def soft_constraints(self): + sol = self.solver + if self.tightwidth: + suggest = 0. + else: + suggest = 20. + c = (self.pref_width == suggest) + for i in c: + sol.addConstraint(i | 'required') + if self.tightheight: + suggest = 0. + else: + suggest = 20. + c = (self.pref_height == suggest) + for i in c: + sol.addConstraint(i | 'required') + + c = [(self.width >= suggest), + (self.height >= suggest)] + for i in c: + sol.addConstraint(i | 150000) + + def set_parent(self, parent): + ''' replace the parent of this with the new parent + ''' + self.parent = parent + self.parent_constrain() + + def constrain_geometry(self, left, bottom, right, top, strength='strong'): + hc = [self.left == left, + self.right == right, + self.bottom == bottom, + self.top == top] + for c in hc: + self.solver.addConstraint((c | strength)) + # self.solver.updateVariables() + + def constrain_same(self, other, strength='strong'): + """ + Make the layoutbox have same position as other layoutbox + """ + hc = [self.left == other.left, + self.right == other.right, + self.bottom == other.bottom, + self.top == other.top] + for c in hc: + self.solver.addConstraint((c | strength)) + + def constrain_left_margin(self, margin, strength='strong'): + c = (self.left == self.parent.left + margin) + self.solver.addConstraint(c | strength) + + def edit_left_margin_min(self, margin): + self.solver.suggestValue(self.left_margin_min, margin) + + def constrain_right_margin(self, margin, strength='strong'): + c = (self.right == self.parent.right - margin) + self.solver.addConstraint(c | strength) + + def edit_right_margin_min(self, margin): + self.solver.suggestValue(self.right_margin_min, margin) + + def constrain_bottom_margin(self, margin, strength='strong'): + c = (self.bottom == self.parent.bottom + margin) + self.solver.addConstraint(c | strength) + + def edit_bottom_margin_min(self, margin): + self.solver.suggestValue(self.bottom_margin_min, margin) + + def constrain_top_margin(self, margin, strength='strong'): + c = (self.top == self.parent.top - margin) + self.solver.addConstraint(c | strength) + + def edit_top_margin_min(self, margin): + self.solver.suggestValue(self.top_margin_min, margin) + + def get_rect(self): + return (self.left.value(), self.bottom.value(), + self.width.value(), self.height.value()) + + def update_variables(self): + ''' + Update *all* the variables that are part of the solver this LayoutBox + is created with + ''' + self.solver.updateVariables() + + def edit_height(self, height, strength='strong'): + ''' + Set the height of the layout box. + + This is done as an editable variable so that the value can change + due to resizing. + ''' + sol = self.solver + for i in [self.height]: + if not sol.hasEditVariable(i): + sol.addEditVariable(i, strength) + sol.suggestValue(self.height, height) + + def constrain_height(self, height, strength='strong'): + ''' + Constrain the height of the layout box. height is + either a float or a layoutbox.height. + ''' + c = (self.height == height) + self.solver.addConstraint(c | strength) + + def constrain_height_min(self, height, strength='strong'): + c = (self.height >= height) + self.solver.addConstraint(c | strength) + + def edit_width(self, width, strength='strong'): + sol = self.solver + for i in [self.width]: + if not sol.hasEditVariable(i): + sol.addEditVariable(i, strength) + sol.suggestValue(self.width, width) + + def constrain_width(self, width, strength='strong'): + ''' + Constrain the width of the layout box. `width` is + either a float or a layoutbox.width. + ''' + c = (self.width == width) + self.solver.addConstraint(c | strength) + + def constrain_width_min(self, width, strength='strong'): + c = (self.width >= width) + self.solver.addConstraint(c | strength) + + def constrain_left(self, left, strength='strong'): + c = (self.left == left) + self.solver.addConstraint(c | strength) + + def constrain_bottom(self, bottom, strength='strong'): + c = (self.bottom == bottom) + self.solver.addConstraint(c | strength) + + def constrain_right(self, right, strength='strong'): + c = (self.right == right) + self.solver.addConstraint(c | strength) + + def constrain_top(self, top, strength='strong'): + c = (self.top == top) + self.solver.addConstraint(c | strength) + + def _is_subplotspec_layoutbox(self): + ''' + Helper to check if this layoutbox is the layoutbox of a + subplotspec + ''' + name = (self.name).split('.')[-1][:-3] + if name == 'ss': + return True + return False + + def _is_gridspec_layoutbox(self): + ''' + Helper to check if this layoutbox is the layoutbox of a + gridspec + ''' + name = (self.name).split('.')[-1][:-3] + if name == 'gridspec': + return True + return False + + def find_child_subplots(self): + ''' + Find children of this layout box that are subplots. We want to line + poss up, and this is an easy way to find them all. + ''' + if self.subplot: + subplots = [self] + else: + subplots = [] + for child in self.children: + subplots += child.find_child_subplots() + return subplots + + def layout_from_subplotspec(self, subspec, + name='', artist=None, pos=False): + ''' Make a layout box from a subplotspec. The layout box is + constrained to be a fraction of the width/height of the parent, + and be a fraction of the parent width/height from the left/bottom + of the parent. Therefore the parent can move around and the + layout for the subplot spec should move with it. + + The parent is *usually* the gridspec that made the subplotspec.?? + ''' + lb = LayoutBox(parent=self, name=name, artist=artist, pos=pos) + gs = subspec.get_gridspec() + nrows, ncols = gs.get_geometry() + parent = self.parent + + # OK, now, we want to set the position of this subplotspec + # based on its subplotspec parameters. The new gridspec will inherit. + + # from gridspec. prob should be new method in gridspec + left = 0.0 + right = 1.0 + bottom = 0.0 + top = 1.0 + totWidth = right-left + totHeight = top-bottom + hspace = 0. + wspace = 0. + + # calculate accumulated heights of columns + cellH = totHeight / (nrows + hspace * (nrows - 1)) + sepH = hspace*cellH + + if gs._row_height_ratios is not None: + netHeight = cellH * nrows + tr = float(sum(gs._row_height_ratios)) + cellHeights = [netHeight*r/tr for r in gs._row_height_ratios] + else: + cellHeights = [cellH] * nrows + + sepHeights = [0] + ([sepH] * (nrows - 1)) + cellHs = np.add.accumulate(np.ravel( + list(zip(sepHeights, cellHeights)))) + + # calculate accumulated widths of rows + cellW = totWidth/(ncols + wspace * (ncols - 1)) + sepW = wspace*cellW + + if gs._col_width_ratios is not None: + netWidth = cellW * ncols + tr = float(sum(gs._col_width_ratios)) + cellWidths = [netWidth * r / tr for r in gs._col_width_ratios] + else: + cellWidths = [cellW] * ncols + + sepWidths = [0] + ([sepW] * (ncols - 1)) + cellWs = np.add.accumulate(np.ravel(list(zip(sepWidths, cellWidths)))) + + figTops = [top - cellHs[2 * rowNum] for rowNum in range(nrows)] + figBottoms = [top - cellHs[2 * rowNum + 1] for rowNum in range(nrows)] + figLefts = [left + cellWs[2 * colNum] for colNum in range(ncols)] + figRights = [left + cellWs[2 * colNum + 1] for colNum in range(ncols)] + + rowNum, colNum = divmod(subspec.num1, ncols) + figBottom = figBottoms[rowNum] + figTop = figTops[rowNum] + figLeft = figLefts[colNum] + figRight = figRights[colNum] + + if subspec.num2 is not None: + + rowNum2, colNum2 = divmod(subspec.num2, ncols) + figBottom2 = figBottoms[rowNum2] + figTop2 = figTops[rowNum2] + figLeft2 = figLefts[colNum2] + figRight2 = figRights[colNum2] + + figBottom = min(figBottom, figBottom2) + figLeft = min(figLeft, figLeft2) + figTop = max(figTop, figTop2) + figRight = max(figRight, figRight2) + # These are numbers relative to 0,0,1,1. Need to constrain + # relative to parent. + + width = figRight - figLeft + height = figTop - figBottom + parent = self.parent + cs = [self.left == parent.left + parent.width * figLeft, + self.bottom == parent.bottom + parent.height * figBottom, + self.width == parent.width * width, + self.height == parent.height * height] + for c in cs: + self.solver.addConstraint((c | 'required')) + + return lb + + def __repr__(self): + args = (self.name, self.left.value(), self.bottom.value(), + self.right.value(), self.top.value()) + return ('LayoutBox: %25s, (left: %1.3f) (bot: %1.3f) ' + '(right: %1.3f) (top: %1.3f) ') % args + + +# Utility functions that act on layoutboxes... +def hstack(boxes, padding=0, strength='strong'): + ''' + Stack LayoutBox instances from left to right. + `padding` is in figure-relative units. + ''' + + for i in range(1, len(boxes)): + c = (boxes[i-1].right + padding <= boxes[i].left) + boxes[i].solver.addConstraint(c | strength) + + +def hpack(boxes, padding=0, strength='strong'): + ''' + Stack LayoutBox instances from left to right. + ''' + + for i in range(1, len(boxes)): + c = (boxes[i-1].right + padding == boxes[i].left) + boxes[i].solver.addConstraint(c | strength) + + +def vstack(boxes, padding=0, strength='strong'): + ''' + Stack LayoutBox instances from top to bottom + ''' + + for i in range(1, len(boxes)): + c = (boxes[i-1].bottom - padding >= boxes[i].top) + boxes[i].solver.addConstraint(c | strength) + + +def vpack(boxes, padding=0, strength='strong'): + ''' + Stack LayoutBox instances from top to bottom + ''' + + for i in range(1, len(boxes)): + c = (boxes[i-1].bottom - padding >= boxes[i].top) + boxes[i].solver.addConstraint(c | strength) + + +def match_heights(boxes, height_ratios=None, strength='medium'): + ''' + Stack LayoutBox instances from top to bottom + ''' + + if height_ratios is None: + height_ratios = np.ones(len(boxes)) + for i in range(1, len(boxes)): + c = (boxes[i-1].height == + boxes[i].height*height_ratios[i-1]/height_ratios[i]) + boxes[i].solver.addConstraint(c | strength) + + +def match_widths(boxes, width_ratios=None, strength='medium'): + ''' + Stack LayoutBox instances from top to bottom + ''' + + if width_ratios is None: + width_ratios = np.ones(len(boxes)) + for i in range(1, len(boxes)): + c = (boxes[i-1].width == + boxes[i].width*width_ratios[i-1]/width_ratios[i]) + boxes[i].solver.addConstraint(c | strength) + + +def vstackeq(boxes, padding=0, height_ratios=None): + vstack(boxes, padding=padding) + match_heights(boxes, height_ratios=height_ratios) + + +def hstackeq(boxes, padding=0, width_ratios=None): + hstack(boxes, padding=padding) + match_widths(boxes, width_ratios=width_ratios) + + +def align(boxes, attr, strength='strong'): + cons = [] + for box in boxes[1:]: + cons = (getattr(boxes[0], attr) == getattr(box, attr)) + boxes[0].solver.addConstraint(cons | strength) + + +def match_top_margins(boxes, levels=1): + box0 = boxes[0] + top0 = box0 + for n in range(levels): + top0 = top0.parent + for box in boxes[1:]: + topb = box + for n in range(levels): + topb = topb.parent + c = (box0.top-top0.top == box.top-topb.top) + box0.solver.addConstraint(c | 'strong') + + +def match_bottom_margins(boxes, levels=1): + box0 = boxes[0] + top0 = box0 + for n in range(levels): + top0 = top0.parent + for box in boxes[1:]: + topb = box + for n in range(levels): + topb = topb.parent + c = (box0.bottom-top0.bottom == box.bottom-topb.bottom) + box0.solver.addConstraint(c | 'strong') + + +def match_left_margins(boxes, levels=1): + box0 = boxes[0] + top0 = box0 + for n in range(levels): + top0 = top0.parent + for box in boxes[1:]: + topb = box + for n in range(levels): + topb = topb.parent + c = (box0.left-top0.left == box.left-topb.left) + box0.solver.addConstraint(c | 'strong') + + +def match_right_margins(boxes, levels=1): + box0 = boxes[0] + top0 = box0 + for n in range(levels): + top0 = top0.parent + for box in boxes[1:]: + topb = box + for n in range(levels): + topb = topb.parent + c = (box0.right-top0.right == box.right-topb.right) + box0.solver.addConstraint(c | 'strong') + + +def match_width_margins(boxes, levels=1): + match_left_margins(boxes, levels=levels) + match_right_margins(boxes, levels=levels) + + +def match_height_margins(boxes, levels=1): + match_top_margins(boxes, levels=levels) + match_bottom_margins(boxes, levels=levels) + + +def match_margins(boxes, levels=1): + match_width_margins(boxes, levels=levels) + match_height_margins(boxes, levels=levels) + + +_layoutboxobjnum = itertools.count() + + +def seq_id(): + ''' + Generate a short sequential id for layoutbox objects... + ''' + + global _layoutboxobjnum + + return ('%03d' % (next(_layoutboxobjnum))) + + +def print_children(lb): + ''' + Print the children of the layoutbox + ''' + print(lb) + for child in lb.children: + print_children(child) + + +def nonetree(lb): + ''' + Make all elements in this tree none... This signals not to do any more + layout. + ''' + if lb is not None: + if lb.parent is None: + # Clear the solver. Hopefully this garbage collects. + lb.solver.reset() + nonechildren(lb) + else: + nonetree(lb.parent) + + +def nonechildren(lb): + for child in lb.children: + nonechildren(child) + lb.artist._layoutbox = None + lb = None + + +def print_tree(lb): + ''' + Print the tree of layoutboxes + ''' + + if lb.parent is None: + print('LayoutBox Tree\n') + print('==============\n') + print_children(lb) + print('\n') + else: + print_tree(lb.parent) + + +def plot_children(fig, box, level=0, printit=True): + ''' + Simple plotting to show where boxes are + ''' + import matplotlib + import matplotlib.pyplot as plt + + if isinstance(fig, matplotlib.figure.Figure): + ax = fig.add_axes([0., 0., 1., 1.]) + ax.set_facecolor([1., 1., 1., 0.7]) + ax.set_alpha(0.3) + fig.draw(fig.canvas.get_renderer()) + else: + ax = fig + + import matplotlib.patches as patches + colors = plt.rcParams["axes.prop_cycle"].by_key()["color"] + if printit: + print("Level:", level) + for child in box.children: + rect = child.get_rect() + if printit: + print(child) + ax.add_patch( + patches.Rectangle( + (child.left.value(), child.bottom.value()), # (x,y) + child.width.value(), # width + child.height.value(), # height + fc='none', + alpha=0.8, + ec=colors[level] + ) + ) + if level > 0: + name = child.name.split('.')[-1] + if level % 2 == 0: + ax.text(child.left.value(), child.bottom.value(), name, + size=12-level, color=colors[level]) + else: + ax.text(child.right.value(), child.top.value(), name, + ha='right', va='top', size=12-level, + color=colors[level]) + + plot_children(ax, child, level=level+1, printit=printit) diff --git a/lib/matplotlib/axes/_axes.py b/lib/matplotlib/axes/_axes.py index d61f6dfe809f..76e1798b78f4 100644 --- a/lib/matplotlib/axes/_axes.py +++ b/lib/matplotlib/axes/_axes.py @@ -1312,8 +1312,8 @@ def plot(self, *args, **kwargs): The following two calls yield identical results: >>> plot(x, y, 'go--', linewidth=2, markersize=12) - >>> plot(x, y, color='green', marker='o', linestyle='dashed', \ -linewidth=2, markersize=12) + >>> plot(x, y, color='green', marker='o', linestyle='dashed', + linewidth=2, markersize=12) When conflicting with *fmt*, keyword arguments take precedence. @@ -1990,7 +1990,7 @@ def bar(self, *args, **kwargs): bar(x, height, width, *, align='center', **kwargs) bar(x, height, width, bottom, *, align='center', **kwargs) - The bars are positioned at *x* with the given *align*\ ment. Their + The bars are positioned at *x* with the given *align* ment. Their dimensions are given by *width* and *height*. The vertical baseline is *bottom* (default 0). @@ -2307,7 +2307,7 @@ def barh(self, *args, **kwargs): bar(y, width, height, *, align='center', **kwargs) bar(y, width, height, left, *, align='center', **kwargs) - The bars are positioned at *y* with the given *align*\ ment. Their + The bars are positioned at *y* with the given *align*. Their dimensions are given by *width* and *height*. The horizontal baseline is *left* (default 0). diff --git a/lib/matplotlib/axes/_base.py b/lib/matplotlib/axes/_base.py index 291a8b6c1eaf..bb70972b6c51 100644 --- a/lib/matplotlib/axes/_base.py +++ b/lib/matplotlib/axes/_base.py @@ -560,11 +560,17 @@ def __init__(self, fig, rect, right=rcParams['ytick.right'] and rcParams['ytick.major.right'], which='major') + self._layoutbox = None + self._poslayoutbox = None + def __getstate__(self): # The renderer should be re-created by the figure, and then cached at # that point. state = super(_AxesBase, self).__getstate__() state['_cachedRenderer'] = None + state.pop('_layoutbox') + state.pop('_poslayoutbox') + return state def __setstate__(self, state): @@ -576,6 +582,8 @@ def __setstate__(self, state): for artist in container: artist._remove_method = container.remove self._stale = True + self._layoutbox = None + self._poslayoutbox = None def get_window_extent(self, *args, **kwargs): """ @@ -869,6 +877,19 @@ def set_position(self, pos, which='both'): which : ['both' | 'active' | 'original'], optional Determines which position variables to change. + """ + self._set_position(pos, which='both') + # because this is being called externally to the library we + # zero the constrained layout parts. + self._layoutbox = None + self._poslayoutbox = None + + def _set_position(self, pos, which='both'): + """ + private version of set_position. Call this internally + to get the same functionality of `get_position`, but not + to take the axis out of the constrained_layout + hierarchy. """ if not isinstance(pos, mtransforms.BboxBase): pos = mtransforms.Bbox.from_bounds(*pos) @@ -1519,7 +1540,7 @@ def apply_aspect(self, position=None): aspect_scale_mode = "linear" if aspect == 'auto': - self.set_position(position, which='active') + self._set_position(position, which='active') return if aspect == 'equal': @@ -1539,12 +1560,12 @@ def apply_aspect(self, position=None): box_aspect = A * self.get_data_ratio() pb = position.frozen() pb1 = pb.shrunk_to_aspect(box_aspect, pb, fig_aspect) - self.set_position(pb1.anchored(self.get_anchor(), pb), 'active') + self._set_position(pb1.anchored(self.get_anchor(), pb), 'active') return # reset active to original in case it had been changed # by prior use of 'box' - self.set_position(position, which='active') + self._set_position(position, which='active') xmin, xmax = self.get_xbound() ymin, ymax = self.get_ybound() @@ -4148,10 +4169,25 @@ def _make_twin_axes(self, *kl, **kwargs): if 'sharex' in kwargs and 'sharey' in kwargs: raise ValueError("Twinned Axes may share only one axis.") ax2 = self.figure.add_axes(self.get_position(True), *kl, **kwargs) - ## do not touch every thing shared, just this and it's twin. + self.set_adjustable('datalim') ax2.set_adjustable('datalim') self._twinned_axes.join(self, ax2) + # check if we have a layoutbox. If so, then set this axis + # gets the same poslayoutbox and layoutbox... + if self._layoutbox is not None: + name = self._layoutbox.name + 'twin' + layoutbox.seq_id() + ax2._layoutbox = layoutbox.LayoutBox( + parent=self._subplotspec._layoutbox, + name=name, + artist=ax2) + ax2._poslayoutbox = layoutbox.LayoutBox( + parent=ax2._layoutbox, + name=ax2._layoutbox.name+'.pos', + pos=True, subplot=True, artist=ax2) + # make the layout boxes be the same + ax2._layoutbox.constrain_same(self._layoutbox) + ax2._poslayoutbox.constrain_same(self._poslayoutbox) return ax2 def twinx(self): diff --git a/lib/matplotlib/axes/_subplots.py b/lib/matplotlib/axes/_subplots.py index 9c033c728889..f2774cb70e78 100644 --- a/lib/matplotlib/axes/_subplots.py +++ b/lib/matplotlib/axes/_subplots.py @@ -9,6 +9,11 @@ import matplotlib.artist as martist from matplotlib.axes._axes import Axes +import matplotlib._layoutbox as layoutbox + +import warnings +from matplotlib.cbook import mplDeprecation + class SubplotBase(object): """ @@ -27,7 +32,6 @@ def __init__(self, fig, *args, **kwargs): being created. *plotNum* starts at 1 in the upper left corner and increases to the right. - If *numRows* <= *numCols* <= *plotNum* < 10, *args* can be the decimal integer *numRows* * 100 + *numCols* * 10 + *plotNum*. """ @@ -42,10 +46,10 @@ def __init__(self, fig, *args, **kwargs): s = str(int(args[0])) rows, cols, num = map(int, s) except ValueError: - raise ValueError( - 'Single argument to subplot must be a 3-digit ' - 'integer') - self._subplotspec = GridSpec(rows, cols)[num - 1] + raise ValueError('Single argument to subplot must be ' + 'a 3-digit integer') + self._subplotspec = GridSpec(rows, cols, + figure=self.figure)[num - 1] # num - 1 for converting from MATLAB to python indexing elif len(args) == 3: rows, cols, num = args @@ -53,13 +57,16 @@ def __init__(self, fig, *args, **kwargs): cols = int(cols) if isinstance(num, tuple) and len(num) == 2: num = [int(n) for n in num] - self._subplotspec = GridSpec(rows, cols)[num[0] - 1:num[1]] + self._subplotspec = GridSpec( + rows, cols, + figure=self.figure)[(num[0] - 1):num[1]] else: if num < 1 or num > rows*cols: raise ValueError( - "num must be 1 <= num <= {maxn}, not {num}".format( - maxn=rows*cols, num=num)) - self._subplotspec = GridSpec(rows, cols)[int(num) - 1] + ("num must be 1 <= num <= {maxn}, not {num}" + ).format(maxn=rows*cols, num=num)) + self._subplotspec = GridSpec( + rows, cols, figure=self.figure)[int(num) - 1] # num - 1 for converting from MATLAB to python indexing else: raise ValueError('Illegal argument(s) to subplot: %s' % (args,)) @@ -68,6 +75,23 @@ def __init__(self, fig, *args, **kwargs): # _axes_class is set in the subplot_class_factory self._axes_class.__init__(self, fig, self.figbox, **kwargs) + # add a layout box to this, for both the full axis, and the poss + # of the axis. We need both because the axes may become smaller + # due to parasitic axes and hence no longer fill the subplotspec. + if self._subplotspec._layoutbox is None: + self._layoutbox = None + self._poslayoutbox = None + else: + name = self._subplotspec._layoutbox.name + '.ax' + name = name + layoutbox.seq_id() + self._layoutbox = layoutbox.LayoutBox( + parent=self._subplotspec._layoutbox, + name=name, + artist=self) + self._poslayoutbox = layoutbox.LayoutBox( + parent=self._layoutbox, + name=self._layoutbox.name+'.pos', + pos=True, subplot=True, artist=self) def __reduce__(self): # get the first axes class which does not @@ -91,7 +115,8 @@ def get_geometry(self): # COVERAGE NOTE: Never used internally or from examples def change_geometry(self, numrows, numcols, num): """change subplot geometry, e.g., from 1,1,1 to 2,2,3""" - self._subplotspec = GridSpec(numrows, numcols)[num - 1] + self._subplotspec = GridSpec(numrows, numcols, + figure=self.figure)[num - 1] self.update_params() self.set_position(self.figbox) diff --git a/lib/matplotlib/backend_bases.py b/lib/matplotlib/backend_bases.py index 6bd359511ea7..ebe5920df68d 100644 --- a/lib/matplotlib/backend_bases.py +++ b/lib/matplotlib/backend_bases.py @@ -3159,8 +3159,8 @@ def _update_view(self): for ax, (view, (pos_orig, pos_active)) in items: ax._set_view(view) # Restore both the original and modified positions - ax.set_position(pos_orig, 'original') - ax.set_position(pos_active, 'active') + ax._set_position(pos_orig, 'original') + ax._set_position(pos_active, 'active') self.canvas.draw_idle() def save_figure(self, *args): diff --git a/lib/matplotlib/backend_tools.py b/lib/matplotlib/backend_tools.py index 26a561b7e63f..6639763e417d 100644 --- a/lib/matplotlib/backend_tools.py +++ b/lib/matplotlib/backend_tools.py @@ -622,8 +622,8 @@ def update_view(self): if set(all_axes).issubset(pos): for a in all_axes: # Restore both the original and modified positions - a.set_position(pos[a][0], 'original') - a.set_position(pos[a][1], 'active') + a._set_position(pos[a][0], 'original') + a._set_position(pos[a][1], 'active') self.figure.canvas.draw_idle() diff --git a/lib/matplotlib/colorbar.py b/lib/matplotlib/colorbar.py index 0ae5771a80fc..8dfd5dd532ba 100644 --- a/lib/matplotlib/colorbar.py +++ b/lib/matplotlib/colorbar.py @@ -40,7 +40,8 @@ import matplotlib.path as mpath import matplotlib.ticker as ticker import matplotlib.transforms as mtransforms - +import matplotlib._layoutbox as layoutbox +import matplotlib._constrained_layout as constrained_layout from matplotlib import docstring make_axes_kw_doc = ''' @@ -532,9 +533,10 @@ def _add_solids(self, X, Y, C): self.dividers = None if self.drawedges: linewidths = (0.5 * mpl.rcParams['axes.linewidth'],) - self.dividers = collections.LineCollection(self._edges(X, Y), - colors=(mpl.rcParams['axes.edgecolor'],), - linewidths=linewidths) + self.dividers = collections.LineCollection( + self._edges(X, Y), + colors=(mpl.rcParams['axes.edgecolor'],), + linewidths=linewidths) self.ax.add_collection(self.dividers) elif len(self._y) >= self.n_rasterize: self.solids.set_rasterized(True) @@ -1049,7 +1051,7 @@ def remove(self): except AttributeError: # use_gridspec was False pos = ax.get_position(original=True) - ax.set_position(pos) + ax._set_position(pos) else: # use_gridspec was True ax.set_subplotspec(subplotspec) @@ -1124,13 +1126,21 @@ def make_axes(parents, location=None, orientation=None, fraction=0.15, anchor = kw.pop('anchor', loc_settings['anchor']) parent_anchor = kw.pop('panchor', loc_settings['panchor']) - pad = kw.pop('pad', loc_settings['pad']) # turn parents into a list if it is not already. We do this w/ np # because `plt.subplots` can return an ndarray and is natural to # pass to `colorbar`. parents = np.atleast_1d(parents).ravel() + # check if using constrained_layout: + gs = parents[0].get_subplotspec().get_gridspec() + using_constrained_layout = (gs._layoutbox is not None) + # defaults are not appropriate for constrained_layout: + pad0 = loc_settings['pad'] + if using_constrained_layout: + pad0 = 0.02 + pad = kw.pop('pad', pad0) + fig = parents[0].get_figure() if not all(fig is ax.get_figure() for ax in parents): raise ValueError('Unable to create a colorbar axes as not all ' @@ -1165,12 +1175,37 @@ def make_axes(parents, location=None, orientation=None, fraction=0.15, for ax in parents: new_posn = shrinking_trans.transform(ax.get_position()) new_posn = mtransforms.Bbox(new_posn) - ax.set_position(new_posn) + ax._set_position(new_posn) if parent_anchor is not False: ax.set_anchor(parent_anchor) cax = fig.add_axes(pbcb) - cax.set_aspect(aspect, anchor=anchor, adjustable='box') + + # OK, now make a layoutbox for the cb axis. Later, we will use this + # to make the colorbar fit nicely. + if not using_constrained_layout: + # no layout boxes: + lb = None + lbpos = None + # and we need to set the aspect ratio by hand... + cax.set_aspect(aspect, anchor=anchor, adjustable='box') + else: + if len(parents) == 1: + # this is a single axis... + ax = parents[0] + lb, lbpos = constrained_layout.layoutcolorbarsingle( + ax, cax, shrink, aspect, location, pad=pad) + else: # there is more than one parent, so lets use gridspec + # the colorbar will be a sibling of this gridspec, so the + # parent is the same parent as the gridspec. Either the figure, + # or a subplotspec. + + lb, lbpos = constrained_layout.layoutcolorbargridspec( + parents, cax, shrink, aspect, location, pad) + + cax._layoutbox = lb + cax._poslayoutbox = lbpos + return cax, kw @@ -1222,6 +1257,11 @@ def make_axes_gridspec(parent, **kw): pad_s = (1 - shrink) * 0.5 wh_ratios = [pad_s, shrink, pad_s] + # we need to none the tree of layoutboxes because + # constrained_layout can't remove and replace the tree + # hierarchy w/o a seg fault. + gs = parent.get_subplotspec().get_gridspec() + layoutbox.nonetree(gs._layoutbox) gs_from_subplotspec = gridspec.GridSpecFromSubplotSpec if orientation == 'vertical': pad = kw.pop('pad', 0.05) @@ -1253,7 +1293,7 @@ def make_axes_gridspec(parent, **kw): parent.set_subplotspec(gs[0]) parent.update_params() - parent.set_position(parent.figbox) + parent._set_position(parent.figbox) parent.set_anchor(panchor) fig = parent.get_figure() @@ -1329,7 +1369,8 @@ def _add_solids(self, X, Y, C): self.dividers = None if self.drawedges: - self.dividers = collections.LineCollection(self._edges(X, Y), + self.dividers = collections.LineCollection( + self._edges(X, Y), colors=(mpl.rcParams['axes.edgecolor'],), linewidths=(0.5 * mpl.rcParams['axes.linewidth'],)) self.ax.add_collection(self.dividers) diff --git a/lib/matplotlib/figure.py b/lib/matplotlib/figure.py index 216353a0c71a..7e21f3ef8742 100644 --- a/lib/matplotlib/figure.py +++ b/lib/matplotlib/figure.py @@ -47,6 +47,7 @@ from matplotlib.text import Text, _process_text_args from matplotlib.transforms import (Affine2D, Bbox, BboxTransformTo, TransformedBbox) +import matplotlib._layoutbox as layoutbox from matplotlib.backend_bases import NonGuiException _log = logging.getLogger(__name__) @@ -291,6 +292,8 @@ def __init__(self, frameon=None, # whether or not to draw the figure frame subplotpars=None, # default to rc tight_layout=None, # default to rc figure.autolayout + constrained_layout=None, # default to rc + #figure.constrained_layout.use ): """ Parameters @@ -323,6 +326,15 @@ def __init__(self, ``pad``, ``w_pad``, ``h_pad``, and ``rect``, the default `~.tight_layout` paddings will be overridden. Defaults to rc ``figure.autolayout``. + + constrained_layout : bool + If ``True`` use constrained layout to adjust positioning of plot + elements. Like ``tight_layout``, but designed to be more + flexible. See + :doc:`/tutorials/intermediate/constrainedlayout_guide` + for examples. (Note: does not work with :meth:`.subplot` or + :meth:`.subplot2grid`.) + Defaults to rc ``figure.constrained_layout.use``. """ Artist.__init__(self) # remove the non-figure artist _axes property @@ -374,6 +386,11 @@ def __init__(self, subplotpars = SubplotParams() self.subplotpars = subplotpars + # constrained_layout: + self._layoutbox = None + # set in set_constrained_layout_pads() + self.set_constrained_layout(constrained_layout) + self.set_tight_layout(tight_layout) self._axstack = AxesStack() # track all figure axes and current axes @@ -496,6 +513,106 @@ def set_tight_layout(self, tight): self._tight_parameters = tight if isinstance(tight, dict) else {} self.stale = True + def get_constrained_layout(self): + """ + Return a boolean: True means constrained layout is being used. + + See :doc:`/tutorials/intermediate/constrainedlayout_guide` + """ + return self._constrained + + def set_constrained_layout(self, constrained): + """ + Set whether ``constrained_layout`` is used upon drawing. If None, + the rcParams['figure.constrained_layout.use'] value will be used. + + When providing a dict containing the keys `w_pad`, `h_pad` + the default ``constrained_layout`` paddings will be + overridden. These pads are in inches and default to 3.0/72.0. + ``w_pad`` is the width padding and ``h_pad`` is the height padding. + + ACCEPTS: [True | False | dict | None ] + + See :doc:`/tutorials/intermediate/constrainedlayout_guide` + """ + self._constrained_layout_pads = dict() + self._constrained_layout_pads['w_pad'] = None + self._constrained_layout_pads['h_pad'] = None + self._constrained_layout_pads['wspace'] = None + self._constrained_layout_pads['hspace'] = None + if constrained is None: + constrained = rcParams['figure.constrained_layout.use'] + self._constrained = bool(constrained) + if isinstance(constrained, dict): + self.set_constrained_layout_pads(**constrained) + else: + self.set_constrained_layout_pads() + + self.stale = True + + def set_constrained_layout_pads(self, **kwargs): + """ + Set padding for ``constrained_layout``. Note the kwargs can be passed + as a dictionary ``fig.set_constrained_layout(**paddict)``. + + Parameters: + ----------- + + w_pad : scalar + Width padding in inches. This is the pad around axes + and is meant to make sure there is enough room for fonts to + look good. Defaults to 3 pts = 0.04167 inches + + h_pad : scalar + Height padding in inches. Defaults to 3 pts. + + wspace: scalar + Width padding between subplots, expressed as a fraction of the + subplot width. The total padding ends up being w_pad + wspace. + + hspace: scalar + Height padding between subplots, expressed as a fraction of the + subplot width. The total padding ends up being h_pad + hspace. + + See :doc:`/tutorials/intermediate/constrainedlayout_guide` + """ + + todo = ['w_pad', 'h_pad', 'wspace', 'hspace'] + for td in todo: + if td in kwargs and kwargs[td] is not None: + self._constrained_layout_pads[td] = kwargs[td] + else: + self._constrained_layout_pads[td] = ( + rcParams['figure.constrained_layout.' + td]) + + def get_constrained_layout_pads(self, relative=False): + """ + Get padding for ``constrained_layout``. + + Returns a list of `w_pad, h_pad` in inches and + `wspace` and `hspace` as fractions of the subplot. + + Parameter: + ----------- + + relative : boolean + If `True`, then convert from inches to figure relative. + + See: :doc:`/tutorials/intermediate/constrainedlayout_guide` + """ + w_pad = self._constrained_layout_pads['w_pad'] + h_pad = self._constrained_layout_pads['h_pad'] + wspace = self._constrained_layout_pads['wspace'] + hspace = self._constrained_layout_pads['hspace'] + + if relative and ((w_pad is not None) or (h_pad is not None)): + renderer0 = layoutbox.get_renderer(self) + dpi = renderer0.dpi + w_pad = w_pad * dpi / renderer0.width + h_pad = h_pad * dpi / renderer0.height + + return w_pad, h_pad, wspace, hspace + def autofmt_xdate(self, bottom=0.2, rotation=30, ha='right', which=None): """ Date ticklabels often overlap, so it is useful to rotate them @@ -623,7 +740,19 @@ def suptitle(self, t, **kwargs): sup.remove() else: self._suptitle = sup - + if self._layoutbox is not None: + # assign a layout box to the suptitle... + figlb = self._layoutbox + self._suptitle._layoutbox = layoutbox.LayoutBox( + parent=figlb, + name=figlb.name+'.suptitle') + for child in figlb.children: + if not (child == self._suptitle._layoutbox): + w_pad, h_pad, wspace, hspace = \ + self.get_constrained_layout_pads( + relative=True) + layoutbox.vstack([self._suptitle._layoutbox, child], + padding=h_pad*2., strength='required') self.stale = True return self._suptitle @@ -886,7 +1015,7 @@ def _make_key(self, *args, **kwargs): 'make a hashable key out of args and kwargs' def fixitems(items): - #items may have arrays and lists in them, so convert them + # items may have arrays and lists in them, so convert them # to tuples for the key ret = [] for k, v in items: @@ -1110,7 +1239,6 @@ def add_subplot(self, *args, **kwargs): self._axstack.remove(ax) a = subplot_class_factory(projection_class)(self, *args, **kwargs) - self._axstack.add(key, a) self.sca(a) a._remove_method = self.__remove_ax @@ -1208,7 +1336,11 @@ def subplots(self, nrows=1, ncols=1, sharex=False, sharey=False, if gridspec_kw is None: gridspec_kw = {} - gs = GridSpec(nrows, ncols, **gridspec_kw) + if self.get_constrained_layout(): + gs = GridSpec(nrows, ncols, figure=self, **gridspec_kw) + else: + # this should turn constrained_layout off if we don't want it + gs = GridSpec(nrows, ncols, figure=None, **gridspec_kw) # Create array to hold all axes. axarr = np.empty((nrows, ncols), dtype=object) @@ -1323,9 +1455,15 @@ def draw(self, renderer): try: renderer.open_group('figure') + if self.get_constrained_layout() and self.axes: + if True: + self.execute_constrained_layout(renderer) + else: + pass if self.get_tight_layout() and self.axes: try: - self.tight_layout(renderer, **self._tight_parameters) + self.tight_layout(renderer, + **self._tight_parameters) except ValueError: pass # ValueError can occur when resizing a window. @@ -1711,6 +1849,8 @@ def _gci(self): def __getstate__(self): state = super(Figure, self).__getstate__() + + # print('\n\n\nStarting pickle') # the axobservers cannot currently be pickled. # Additionally, the canvas cannot currently be pickled, but this has # the benefit of meaning that a figure can be detached from one canvas, @@ -1731,6 +1871,14 @@ def __getstate__(self): matplotlib._pylab_helpers.Gcf.figs)): state['_restore_to_pylab'] = True + # set all the layoutbox information to None. kiwisolver + # objects can't be pickeled, so we lose the layout options + # at this point. + state.pop('_layoutbox', None) + # suptitle: + if self._suptitle is not None: + self._suptitle._layoutbox = None + return state def __setstate__(self, state): @@ -1748,6 +1896,7 @@ def __setstate__(self, state): # re-initialise some of the unstored state information self._axobservers = [] self.canvas = None + self._layoutbox = None if restore_to_pylab: # lazy import to avoid circularity @@ -1911,7 +2060,8 @@ def colorbar(self, mappable, cax=None, ax=None, use_gridspec=True, **kw): current_ax = self.gca() if cax is None: - if use_gridspec and isinstance(ax, SubplotBase): + if use_gridspec and isinstance(ax, SubplotBase) \ + and (not self.get_constrained_layout()): cax, kw = cbar.make_axes_gridspec(ax, **kw) else: cax, kw = cbar.make_axes(ax, **kw) @@ -2052,6 +2202,45 @@ def get_tightbbox(self, renderer): return bbox_inches + def init_layoutbox(self): + """ + initilaize the layoutbox for use in constrained_layout. + """ + if self._layoutbox is None: + self._layoutbox = layoutbox.LayoutBox(parent=None, + name='figlb', + artist=self) + self._layoutbox.constrain_geometry(0., 0., 1., 1.) + + def execute_constrained_layout(self, renderer=None): + """ + Use ``layoutbox`` to determine pos positions within axes. + + See also set_constrained_layout_pads + """ + + from matplotlib._constrained_layout import (do_constrained_layout) + + _log.debug('Executing constrainedlayout') + if self._layoutbox is None: + warnings.warn("Calling figure.constrained_layout, but figure " + "not setup to do constrained layout. " + " You either called GridSpec without the " + "fig keyword, you are using plt.subplot, " + "or you need to call figure or subplots" + "with the constrained_layout=True kwarg.") + return + w_pad, h_pad, wspace, hspace = self.get_constrained_layout_pads() + # convert to unit-relative lengths + + fig = self + width, height = fig.get_size_inches() + w_pad = w_pad / width + h_pad = h_pad / height + if renderer is None: + renderer = layoutbox.get_renderer(fig) + do_constrained_layout(fig, renderer, h_pad, w_pad, hspace, wspace) + def tight_layout(self, renderer=None, pad=1.08, h_pad=None, w_pad=None, rect=None): """ diff --git a/lib/matplotlib/gridspec.py b/lib/matplotlib/gridspec.py index 8bd46c1a7d5f..910d66e526df 100644 --- a/lib/matplotlib/gridspec.py +++ b/lib/matplotlib/gridspec.py @@ -18,6 +18,7 @@ import six import copy +import logging import warnings import numpy as np @@ -25,6 +26,10 @@ import matplotlib as mpl from matplotlib import _pylab_helpers, tight_layout, rcParams from matplotlib.transforms import Bbox +import matplotlib._layoutbox as layoutbox +from matplotlib.cbook import mplDeprecation + +_log = logging.getLogger(__name__) class GridSpecBase(object): @@ -47,7 +52,7 @@ def get_geometry(self): 'get the geometry of the grid, e.g., 2,3' return self._nrows, self._ncols - def get_subplot_params(self, fig=None): + def get_subplot_params(self, figure=None, fig=None): pass def new_subplotspec(self, loc, rowspan=1, colspan=1): @@ -76,20 +81,31 @@ def set_height_ratios(self, height_ratios): def get_height_ratios(self): return self._row_height_ratios - def get_grid_positions(self, fig): + def get_grid_positions(self, fig, raw=False): """ return lists of bottom and top position of rows, left and right positions of columns. + + If raw=True, then these are all in units relative to the container + with no margins. (used for constrained_layout). """ nrows, ncols = self.get_geometry() - subplot_params = self.get_subplot_params(fig) - left = subplot_params.left - right = subplot_params.right - bottom = subplot_params.bottom - top = subplot_params.top - wspace = subplot_params.wspace - hspace = subplot_params.hspace + if raw: + left = 0. + right = 1. + bottom = 0. + top = 1. + wspace = 0. + hspace = 0. + else: + subplot_params = self.get_subplot_params(fig) + left = subplot_params.left + right = subplot_params.right + bottom = subplot_params.bottom + top = subplot_params.top + wspace = subplot_params.wspace + hspace = subplot_params.hspace tot_width = right - left tot_height = top - bottom @@ -156,7 +172,7 @@ class GridSpec(GridSpecBase): as the SubplotParams. """ - def __init__(self, nrows, ncols, + def __init__(self, nrows, ncols, figure=None, left=None, bottom=None, right=None, top=None, wspace=None, hspace=None, width_ratios=None, height_ratios=None): @@ -183,12 +199,41 @@ def __init__(self, nrows, ncols, self.top = top self.wspace = wspace self.hspace = hspace + self.figure = figure + GridSpecBase.__init__(self, nrows, ncols, width_ratios=width_ratios, height_ratios=height_ratios) + if (self.figure is None) or not self.figure.get_constrained_layout(): + _log.info("GridSpec must be called with the fig keyword if " + "constrained_layout is used") + self._layoutbox = None + else: + self.figure.init_layoutbox() + self._layoutbox = layoutbox.LayoutBox( + parent=self.figure._layoutbox, + name='gridspec' + layoutbox.seq_id(), + artist=self) + # by default the layoutbox for a gridsepc will fill a figure. + # but this can change below if the gridspec is created from a + # subplotspec. (GridSpecFromSubplotSpec) + _AllowedKeys = ["left", "bottom", "right", "top", "wspace", "hspace"] + def __getstate__(self): + state = self.__dict__ + try: + state.pop('_layoutbox') + except KeyError: + pass + return state + + def __setstate__(self, state): + self.__dict__ = state + # layoutboxes don't survive pickling... + self._layoutbox = None + def update(self, **kwargs): """ Update the current values. If any kwarg is None, default to @@ -209,27 +254,33 @@ def update(self, **kwargs): if isinstance(ax._sharex, mpl.axes.SubplotBase): if ax._sharex.get_subplotspec().get_gridspec() == self: ax._sharex.update_params() - ax.set_position(ax._sharex.figbox) + ax._set_position(ax._sharex.figbox) elif isinstance(ax._sharey, mpl.axes.SubplotBase): if ax._sharey.get_subplotspec().get_gridspec() == self: ax._sharey.update_params() - ax.set_position(ax._sharey.figbox) + ax._set_position(ax._sharey.figbox) else: ss = ax.get_subplotspec().get_topmost_subplotspec() if ss.get_gridspec() == self: ax.update_params() - ax.set_position(ax.figbox) + ax._set_position(ax.figbox) - def get_subplot_params(self, fig=None): + def get_subplot_params(self, figure=None, fig=None): """ Return a dictionary of subplot layout parameters. The default parameters are from rcParams unless a figure attribute is set. """ - if fig is None: + if fig is not None: + warnings.warn("the 'fig' kwarg is deprecated " + "use 'figure' instead", mplDeprecation) + if figure is None: + figure = fig + + if figure is None: kw = {k: rcParams["figure.subplot."+k] for k in self._AllowedKeys} subplotpars = mpl.figure.SubplotParams(**kw) else: - subplotpars = copy.copy(fig.subplotpars) + subplotpars = copy.copy(figure.subplotpars) update_kw = {k: getattr(self, k) for k in self._AllowedKeys} subplotpars.update(**update_kw) @@ -239,7 +290,7 @@ def get_subplot_params(self, fig=None): def locally_modified_subplot_params(self): return [k for k in self._AllowedKeys if getattr(self, k)] - def tight_layout(self, fig, renderer=None, + def tight_layout(self, figure, renderer=None, pad=1.08, h_pad=None, w_pad=None, rect=None): """ Adjust subplot parameters to give specified padding. @@ -260,16 +311,16 @@ def tight_layout(self, fig, renderer=None, """ subplotspec_list = tight_layout.get_subplotspec_list( - fig.axes, grid_spec=self) + figure.axes, grid_spec=self) if None in subplotspec_list: warnings.warn("This figure includes Axes that are not compatible " "with tight_layout, so results might be incorrect.") if renderer is None: - renderer = tight_layout.get_renderer(fig) + renderer = tight_layout.get_renderer(figure) kwargs = tight_layout.get_tight_layout_figure( - fig, fig.axes, subplotspec_list, renderer, + figure, figure.axes, subplotspec_list, renderer, pad=pad, h_pad=h_pad, w_pad=w_pad, rect=rect) self.update(**kwargs) @@ -296,19 +347,34 @@ def __init__(self, nrows, ncols, GridSpecBase.__init__(self, nrows, ncols, width_ratios=width_ratios, height_ratios=height_ratios) + # do the layoutboxes + subspeclb = subplot_spec._layoutbox + if subspeclb is None: + self._layoutbox = None + else: + # OK, this is needed to divide the figure. + self._layoutbox = subspeclb.layout_from_subplotspec( + subplot_spec, + name=subspeclb.name + '.gridspec' + layoutbox.seq_id(), + artist=self) - def get_subplot_params(self, fig=None): + def get_subplot_params(self, figure=None, fig=None): """Return a dictionary of subplot layout parameters. """ + if fig is not None: + warnings.warn("the 'fig' kwarg is deprecated " + "use 'figure' instead", mplDeprecation) + if figure is None: + figure = fig hspace = (self._hspace if self._hspace is not None - else fig.subplotpars.hspace if fig is not None + else figure.subplotpars.hspace if figure is not None else rcParams["figure.subplot.hspace"]) wspace = (self._wspace if self._wspace is not None - else fig.subplotpars.wspace if fig is not None + else figure.subplotpars.wspace if figure is not None else rcParams["figure.subplot.wspace"]) - figbox = self._subplot_spec.get_position(fig) + figbox = self._subplot_spec.get_position(figure) left, bottom, right, top = figbox.extents return mpl.figure.SubplotParams(left=left, right=right, @@ -335,6 +401,31 @@ def __init__(self, gridspec, num1, num2=None): self._gridspec = gridspec self.num1 = num1 self.num2 = num2 + if gridspec._layoutbox is not None: + glb = gridspec._layoutbox + # So note that here we don't assign any layout yet, + # just make the layoutbox that will conatin all items + # associated w/ this axis. This can include other axes like + # a colorbar or a legend. + self._layoutbox = layoutbox.LayoutBox( + parent=glb, + name=glb.name + '.ss' + layoutbox.seq_id(), + artist=self) + else: + self._layoutbox = None + + def __getstate__(self): + state = self.__dict__ + try: + state.pop('_layoutbox') + except KeyError: + pass + return state + + def __setstate__(self, state): + self.__dict__ = state + # layoutboxes don't survive pickling... + self._layoutbox = None def get_gridspec(self): return self._gridspec @@ -364,8 +455,8 @@ def get_rows_columns(self): col_stop = col_start return nrows, ncols, row_start, row_stop, col_start, col_stop - def get_position(self, fig, return_all=False): - """Update the subplot position from ``fig.subplotpars``. + def get_position(self, figure, return_all=False): + """Update the subplot position from ``figure.subplotpars``. """ gridspec = self.get_gridspec() nrows, ncols = gridspec.get_geometry() @@ -373,7 +464,7 @@ def get_position(self, fig, return_all=False): [self.num1] if self.num2 is None else [self.num1, self.num2], (nrows, ncols)) fig_bottoms, fig_tops, fig_lefts, fig_rights = \ - gridspec.get_grid_positions(fig) + gridspec.get_grid_positions(figure) fig_bottom = fig_bottoms[rows].min() fig_top = fig_tops[rows].max() diff --git a/lib/matplotlib/rcsetup.py b/lib/matplotlib/rcsetup.py index df4f0fe7db37..23e4e14e8715 100644 --- a/lib/matplotlib/rcsetup.py +++ b/lib/matplotlib/rcsetup.py @@ -1286,6 +1286,19 @@ def _validate_linestyle(ls): 'figure.subplot.hspace': [0.2, ValidateInterval(0, 1, closedmin=True, closedmax=False)], + # do constrained_layout. + 'figure.constrained_layout.use': [False, validate_bool], + # wspace and hspace are fraction of adjacent subplots to use + # for space. Much smaller than above because we don't need + # room for the text. + 'figure.constrained_layout.hspace': [0.02, ValidateInterval( + 0, 1, closedmin=True, closedmax=False)], + 'figure.constrained_layout.wspace': [0.02, ValidateInterval( + 0, 1, closedmin=True, closedmax=False)], + # This is a buffer around the axes in inches. This is 3pts. + 'figure.constrained_layout.h_pad': [0.04167, validate_float], + 'figure.constrained_layout.w_pad': [0.04167, validate_float], + ## Saving figure's properties 'savefig.dpi': ['figure', validate_dpi], # DPI 'savefig.facecolor': ['w', validate_color], # facecolor; white diff --git a/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout1.png b/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout1.png new file mode 100644 index 0000000000000000000000000000000000000000..a127596144010d851ae265f8b5f38bf66fa0d823 GIT binary patch literal 23743 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 yf1n1b=I^p-Y2)*mBCr*Iskq7-O#Ica`K$k3b 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
)5hq{>_J{Q2{($&$&dQ!R6J)eYUB_{Fq_Joth0 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 z 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 literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout11.png b/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout11.png new file mode 100644 index 0000000000000000000000000000000000000000..e0bb47296b2c7b47f48cb4862d60a9da429cb073 GIT binary patch literal 38636 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 literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout12.png b/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout12.png new file mode 100644 index 0000000000000000000000000000000000000000..3e24209e18b04228e14193a9d772ac4bca9bafb0 GIT binary patch literal 44660 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 z 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 literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout13.png b/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout13.png new file mode 100644 index 0000000000000000000000000000000000000000..92c18947f9e6310161817b1dd9d8fc231e0b41b0 GIT binary patch literal 35515 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 literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout14.png b/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout14.png new file mode 100644 index 0000000000000000000000000000000000000000..82fba5397e36b711c8da7f064eeab7c02bc1e39d GIT binary patch literal 40330 zcmeFZcRZK<`#*dlBb!8IugWSb*?U#8_bNp8mQ7?Op+c0AD0^nFN=8M<$|kb+-tOb< z8lTVici(^9zu#Z?A9s((_2?4L_c>m#<9M#)j8MC!NQ6&=k01zhINQ>fDU_a z-Dn#hOZUsTstY#v%xrinW0D?C{iqAd3QvEMH69vhhl#~MvlG@nD?reAg>%EJ!DNOc zg@5MN%0&r=)KW1;R=gmD`OhCt(xK|V{?~<`HjtDI{>1hw*&8E*c7lR}dSy0o>ZyLS zufwi*ty{2OxG))UA?3>Mz>Nf+i7yvYKR;!=am8gyiC^owoScQ&^!eDiYY06l!dXrxKizDRNL;zg;ucQf@D*qE95a5kb^ z-Dm@2p44e`H!|Gs$XQt|bCIXSsz zvwE_`Cs?ESr%gD@pU0qG%Shq!qq{EX~mA}7#>-X;p z2ir@<_g75b+w^`-G7Sq4$3r%vW(%(oP!8m`zZ7C&X2z73mTqltmv?X|82wI-#B=Ef zIo9vtjQMU5IgHjuw6)!QCE-WI#>VD386}jbCkzk9zfH)+gEmkt7(JJVVPWQ9pI@5) zHVy~c9S6x;d7*L_ZMZR8 zjlOR}!?8$hNPYeMn8+ipc&^^|J=*Fo=Yh*><$B@RL%K#yT4KArynONU<-#pj6BCo! zfzk_C?FS#0l<;wCDZnBTnLaPfPb}41;J!3?R#;g0g^(k?$I@WP(ZSBbk)4qdZGmx3 z=*M8($?=cDmF^3a-&4dR-52`qOtr@92*X6;@&W>YkZM}QA(cwJvolfj< zwXxE9GW2_g#Llqm&th}jx3`iX&7}C;8X2v0Huva+57&L+IMpT>WFvx|jx+Tm^G0h& zhhnK^d*@q~^Oe=rgVn6e%<10d_3E-8F!0cwK&BrhI})U=qZ29{Mm({*Hd*O^BqAmz z)>-9hB_}Wcv9YnS?>GEdBHTQ=@1I{61m+o(;TP8LbJW(>cIIev!ut9(-t1OMviwHPA0x5iaxGpNM7gCO8V347MjRQOJnpEnnoK|INbUDHO^Zy;9%Pxb~MYCD={P+WCK$2^4Kme zE~NDI#HOaEh6%D36>#(?A$yk0A2DDJ+=41aYGiC2a&kB$8KjZjbFlaD;i;{eDyIpv z8a5`TkB`K$V<+#_J5T(2L9mhUK)a6LT5|VWk<*0CaHTVrfgOltLJ zX0WiZFc8kkNiqrwi>B*Dkx@}i!&R>N{zkDH)=qwlxD2sL=i=4kt^=p&lB%<)w^sLc^aPG~H8?1blgE|emp=iM$A< z;i&V`mp@9DSc*o_=Al9q&1>uKw=V>3DP3G$i{0ild=J-J;PHg?&1ffN1_uR^($Lr} zxooYkua_u`GiQDp-}iBM&pq%z+xs?Ni}Uj3%MU#kY>w&rOM|!9y_Fn|gFa`P9Q5VJ zC)scL+$9`kma#auk?;S)k>qy0{#o=k95cBgc&AT4V8pBR-7Cqz!359r{PcM;K{+Bb zWPQl7L7J6(ZJmmYOz>ix5VK7c&Rn)fQ33A?&UUcB4EtQb||ep)1o zM({@;+r0?dz4ZJWotIpuZj|##f6HoBGE9(?bN}pHN<95??S-R-GVu=k=KQ?P)YMd3 zQ4wiMO3G~KYb+xpLP^57`1sHZDV~@O3=(z~B$xFy?MdbmYfT9xGH^exwz0G4&d7R) z{+wqL_j#U@^2Ew}>(km~OIMxGeRL%yyl~uV@%2GA+Bsf0zID#xWJJb){R$$c6Zu(9 zh^|&B^fmCVySTSPpb{IlRs@LcLI6%=b!RIu}J^?O9{>Y;Sa?QRwIfR z@Ztvwe`tu}jB9A#O+1=5Eo$}0ka9jqlHcZBv$c;s!jx*4jn=bh2r@hqxk!baiiiyH zu&WxgVlE+sRdsN;-uiaEc%}LD%S)cv|2t>aJYo4!#QE2$?WG~y#G9d(?MV~a?@~T> zzLvE&ri8~@cLg4+K0H>7!`(F{B_*jh3Q?Wq_J+f?US~?JI+{y6BqHsH$|qij(U-VK zKvi~c_GMwV`lVKJyUezq_~li58Fh8CTd5LJFNGY8~Hw zm6F(-Iun)JWX6mB50_y%A@r+K6?L@CLjyz)s4KPU?CKhvo12^ejS&_t=buGOEQt(M zI5I$`*iEDVXVGTSdLu3y(<*X`if_<%I+J|g&X^b)mOflf7L#k1l@z^}k(EU4?2phFb<9e8Nz=%m9wIVbADm7x)~bnDA^_`t<88|}Wde7xVj zeS_tM0e2ai3(LietyxRc-;*OdJJkqu6{m(36cxMW=|YTNxUcpzeg+{T4q_vr?biT^?|_hAVNj zsd+O+jN0n^D`^`W4*$L1R2dl=x0i>jD05!C!iJ(h-x#~z{u+nTrHb}){VwwpTHzq{ z!6#a!6uT?SP2I-C#4LgWb~8!fbh3zhPIozgvXIEg$YvkvP!fhGqjf&!d+WcadE#E- zp-20M9?jw7qlk!)%Of?sW}opatgKi>MGfn|H#TCOVZT{)$6cLPqz%*n0g8A?+LxQ%>sFN zYjc57Rgee9gRBQ>JNyL&1%ORz^+o5te!bq))03wBjNM>COk5lT$;`~O6r~rYg0(2D zSufm!e5Tj#xyW5ImVP}%ewzTXH{#aZXeY|$E-^(aofm86w}+PZ-l1Qu;?3QOJ-Yr< z+zj2^QL1UM(+je%4Anb~)ko3bokJKr8|7{N$a0ExO#+819AB0N>!`?Psogsn(kgT2 zFtJg3;kd&)CcrzkY+j$}d9!pmD!lc2QlxR0QHD5oS|lST*J=Q1w$`ICdT+dtkPw3f ze0+SsTH2xE;aL)|n8wgj7RGuua-4(Qy23Ck7$WmiTvt;XEDyll4NW-Bi*4_GmTakzm>2%uvEkFkt_K~l8}PlEYEU;b=w zE>+T1dz*OkGi0$FE}_1YXGxh|lr+f3(-#P1J)Xty?s{rzYfmf=lp=v+{s%;N@7_fM zBhFlq;fON>45?S+!TspbqaM1IsV~pg+J(k$L-En8_Z9Z_^}S--$2Il)_e2 zKqT+r4B;t~3A1J^ozg8%xzSUG!e4bGqr78b2?_eOwKXI#!PH-W<|ZT3nWxW>wyw|N zWavpEAKKfAfCRLpNeAEDqk-$Cfji?#KnX{qTB{@8FN}q3T6V7Anh8GlADSGQ2%?p-!0vu{%R#RLQ> z)YaAX8vN@%CUD=iv`h!?0i`LgdZ|m1p(zjp%W1ley43eF9L(Y0gFOp(`%eCgop)IF z-P^aHhK9}?*Ld`zTQAs%r={4uWz%8kwJffdmR8n`yzUp^3s9(4PWaHJf<9>3S-Ghg zqfN1lcec|pxL+*zPT}C#l;sXu@FkAgj|H6g*^N}6Wl?x6WoO5gBw!ts8gNVv)wE^0 z{pEs|B$Q~Lf6s(0(&>H9sY`K9G)wp6@Pmh-<$vnvP|Y3b?$)d`N$txwG+!DlJ16YI z3iX9}eDu7A@5ASp0CX(h$w5TX6gMaF5;pJiu|Ee-G+R zCi{z{%Ylkea&UTbGWgRcnS764zd{KK3Ga#{pg*Lfq=A4)l~{M4(9zO9Mvw9_2>XSI zJICOAYt4j0X*s!!kJRf?B(KlJ%97WFGdcH~eC7$QDT8g;YQYDs#OA$~rDab4g6sC8 z{=P~a{HGG z2cbmgJ4^1~a9ijjLe#Xh9u5y1;RU4~-`tpPcZR1A2aB@j=i>tvLGrLjxSocLOqkcI zRS2+5D^oU)x-ECvD<&Ga#Ul5YA7^X6V-^;s=1U~(ey7?J%c6M2yqPfk_|;tt*t4rU zJBrS0M`6gDH*cJmhlOkR=X0+CuqY`lGIOwVC zaXk1ee_$7*XR}KftHmL&p+Sx|3}~sjLuTgYWM|HpI}PcVS^_YgSSW00P7<{3S&EiC zzDCJol(jqzWbr0i0yr6A<$dO14mWNZykTGX2-|6OT-xI9-Ph3QW=HEp<(SFJ9Y!8O zDb1C9788R=lXk*$aDN#YNx**VRX8jsEX1J9CIpbsB<#Ljs4#6OY!TtDbJt|+g{RKO zL{eS;1)K}$zI22CQD=d%=$mp)4(yB1WtJH7f)8s1Ek{zX%NV4fb>C6!w`1&)$%yk0 z<^$}&4gCt+lbF*65@#&XVz2zeBXUvqQbpSeE%M&m{1H@so+|5OziK77Q4-ERXLyAD z1;(;BZxViLY%F$P&{4|N$awc|(lOxRJjz*mb9EO+bfDA%8U|+D5^!>0x;fj0g#hHX zT*X#Jg@|5~jU|ccm+aFo{eGj3jmM-m{6eZPITY^sa)yAzu36%wa2nzWt-KBLGC7;w zPs_jy)%Eowgk7hzX5>hSh~%}jDBz}qg%D8Xm=130N*?dBe19bzyfjpiD{6(@`;l>) z9*~2#?|BywUvydehI-NnUkuU$ta+gpY&_!)sU00c{ZqzoY zDy_d=Xhl74u9O2l3@t2#V#KUwVDKm}k1Hx{H~eN3fWNb_Aj4<^Pn|k-d+tZ(3ju3# z5%+nE1()#F(9arcb%`>^CE>QhvaHX(ke)l2)mvc0@0PvyIpWOhk4yrI!&TYc{rz;; zneX@d@~D|vScFMmdjlJdeZ&tPe4c`(PC|em!wyA?clfvv~}P*-8Q<$ z@jTqzy*2iLVNt*XN4W!_YxZX`%hRV%(N^?4F76HhD|X*AP#g~aEe=nw^KxB88iOze z2KgPwKHg|p?5|1I;s}v>-D#s+mc9J4SDuUVO>HeLr%v977$#Y0%nesBUnT*})C5`( zO6WD~0kM)HGp$1JXaaqArMc+W*MHnQFUUduhMC1)i%h+-)PKk!Z!9IROUG_JFEX2z zhg`|1tmcX_$+CEBOA9XA^p~))vFEq;;ST%)lr=ln(4cVe;Q-2{JupBhJ$llo3zIz`q3;;uQPgdEq{_LtIfJ}?b^AB zh={DbyoWV4HPzz${Afjvi6J$r^VVJnxk>(|&Ky6;>zyn|LqCxQE)AAlkmV5)fU>z=bHK(?7h#;&CI;K>Lbfg_0``fP!IQwjL?1g^5vY618pcV zU5>-f_IC4NneDiBggIKniU%(zDLo~ioU*L$oTIBQ-x>jDt6j5 zWcsms9KEigtxgr?KWiBkm+0dxoaV7Tz0`rmEdHogsy6AmHL z{DdwN)Y$UTv0$YTK=FaDQ!ksA|4zS zrfTz^YAj!%@;^J6+PiZHaH(8Jiul@B&cYXJyaVLGYG^~Cs5FW{yd`%EiK)EpHb#GL zq#{hgwVI2hPV!J^#S+lLMJ}!$8{K5O{`=EbWA%PN>wJVz8pv%}o;3s%kttTG=nORwQ2NwcAH`|!t)wJIEc7Gc08$yGRvAj1nWaA94bKLR2qWRNhL zu@@8f*_H#Tv&d)10kBq9%GjekbQx@arCwKAL8hSbc+O=ebmr<__B~jt_*rxZ%m3u) z{?Z6H(Yew3gmd6CF*j*1zSp*S7d<(|44DXmWdMlAEh!tkjC@e)LvAB;nZ3 zy&NmYkz)APxWeGs$i<4ow`=@+J=))5`+-8^wV<-=+6I^vpVP?Jnh_~cZ4;Wj zg0eDev-*)15c@_kTH$(_C?kulyV+4>X;wVVDGNR9REW$2*wnv@Tj=?H?#Ri7hO=sf zXNd5q-yk$ikH4O&bp84#uqSvy*mgGrz-(q_M(B{M#o@fWdWTlT4G(10CYETips&}z z9nL)93PW#T8+rqUs=PMXVU6@87-_v>KdT*Ptge2i_*Z!NCYiFao5_>DUh9)y09dhc zaUoE2f5j@&e*|<_1X$x{s)VuM+Y3xg7^hF4rWx9r?d#w>~fCODJ{IFu`9Az9wss(wBt234ZPX?tK-~`Qz^=1fE!^635abRcgh)^~r zPk|~#dge^<>Z+4bz3(6B52OO6^ia8|hqqA|2c!aZJ-u*v1QS3DJhysv*Sb|DQI&Z5 z(8EF+wrYv(tr$mdTt<+=v60&2{RIQ72gkdUBv6{oI@6?~(-68?rqI-JRbB=7C-fxv-(i2&(Px9v`eYAMQGz!o{5g4dj6yS2MUzZ6>5-vFgXK*ro~zY!ca6 z1qIKJj*dcI&sFfz(>piiA`FtaP6eNl5hG>f1eEMb3rQ%X7X7an$2N(j0)14w-@SWh z4s`e4Xss}++QSk<3t=;`W7HQYr2^l8uvfgq;0E_j>sJfDoOm2@0|Ygoc#P}RvJzuQhb($AJYhaon2~`Ko3R_2czCn@&VNg74z2DUEr6PSXm#I z){(~AM`VV3OJJ&ZDBcrzmn;!^LGfm1P2#_BhkB^OxXJ}vHk430S0}&dP9si!w$Web zxO`2zo_g3EEFowJ1W=+k=elu$6MO!OxUjm~NHPifVld;2gEB?1*T_DTplG3J(ih?4mzkeEpxcRWH?ZtsN8;{Qn2%$@o6J3(BuOB_a7du!i1+AM8?e-FW z`yYVQ0=#a7>c;e-~q6pxxm6(*pwoO1Ew`?~DaR^O`p^f?b8WFDSbN!gB6g z!sV8H!wN1PTC!M)pwHMrJ=#98=lqob^kRan2DP*M-WZfRgL1nFhmmRw1VoS+07A~} zwNSOOaEU*|Zx^91p5xf)q3L6;C;#qvWNQ8QH#{i#E2DMp1p#2ur9qw8n%9mzt0MZC@`|H zV4MD#8&GN0eypw~BE3I$e!N-?{u6X(P{i>kRneC6fk#i`IXZZ;{m zOYEzDm*S0oxpp-uw&@u+>Ms2CahU6%-lc(?8XgfL?d4U~Tn*HE9QN&JP%~|}gqjM# z^HLRCJB5-Lkf?u++#i#VrWbbtfhM<4TJ9=4I#-dOVOvz%q0X{HX@%;|An>IQmqfr6|^r>ZUVHT#PFpg?Y)j9fWecqS>U2&J)A6#eRLNteC#yQqQI@`R2*hhYy+Y<2Ek zs@eL~mus%mgc_QfYw&y++1Rk*5ev@rv+$b((|O|*>f3!T5Y<;XId9Y%!Cp)jy&u}p zAPG;0@!1zOpnYj+jPD&rXh6Ic^pOtDGpVDA^AXrr{U-|$7x#kS>WMecBnS}TG~PMd z-*WfO)*}%QsiLzFfRzUz>`nZASRoPfVAu8@1_0nCVQ!aw48+~ z`zVWHs{cbjQhoe@ig2a&)9dY7_e*qjbeJV28G3tr4HoGAHq}chEtIUSv%d@RdH*Sa z>l3)etADtb@E@+#uFD$x%&_5rk^Gq;gB~XjXa9zE_i5(SeU8JAQ-$n0#rm+i@#oEK zBsJhZCMD4%^OI8#;l>`JB(oTpkGT`_6#8ty;UvQ~w^>pO{E+V*v$hqdvbAzHJaex0 z9y#p$?)^4$BOnsARq>A^G9~8M9xDJ4V~RNOno(kF%H1SEkxklIJ~P0V-Wx3Fx9$xt zH&6~Z?nPmuevn-I{D}{hpa)@k^OLT7H$;;|QW{MQcIp{29^$=WRy5a|x)-&*x#_mK zy!Ci=>E@E6*3#Boa4SftHZ8t2(R*(r_B{8g|9Xu z;Lu3{hCGB;%go3KOE^}EG2vV9g5>@z%i;b)Ve7YV{I=4eAQ4J|hyqoYX6gJ@J1OuE z&_$Np3%f3p0ttDN8Gk%5>z@Io7h)fz^w%aSfR_P7XX55o8DUTOhDtM=^Sw7FGjCZm z{MToLGoY@i`R2F^L@U%}-M0dt7B46e6po}aMp*@bm|&Tk&-Y|QuL!-#-U!$4{1;8d zVvcRKDT9tWvJm5L{Pt>Xa`92?^GllJD=UR-ons(}Pb@4%f|ZHJR<7M&rcHnICN?1< zjGEt4Z++n@HCiT9pjFTLrL$hVh^Jd%Bn>_~L_<0`iE@ zIi(N(F2lf)p$uR7qliN*kh*#Eaqm1M^N=QfpiFknNDSO@Djp+Lt0=M`x(b&~@S*Oc zjYq%aR4@+FkD6qe*HYK7;}bJTJg%)3LyI1?E0i7)QQe>fje*%`nsD#!edI?&K!Di( z?3` zsH(eylCF>a<2glga`Kp%n6%?P@T{9eS89V58T=?vSr9!3aOEbz!vqjj^>H%f;lpt# zN@%qK{DERkxLvn@WGL%ZyItyVFhs)-i;2M8Mlr&3b2$OuvR@T(jU5%j(ct>`jun={Yu>qy+Sm76rfufE=m@FeI4RE zv=S$WuD%=XLO2yG-S0?XWrxDTmt`e?4H%-Us|$5Ba0t%@D%IzH%=u^i%nRJ{0C9FL z;AAIYx4+@|Zuj@Za3v;0@cL3_xsQcPu~`%TMGE}SO-<5=Gd?)pJIhfJ3cAyqqfJ9{ zWuXK*4y-0cKlUtON_s`NF_7CRmc9I9{xP}@(L%}RxX8p@a%F^McCOye*c9sUy`l1a z?>^Qz;OT(w$6=MZkG`v^5e@XQngn@O3$~Pi!$BYT!tW!bQLJ&eak@urp>Pv8OQy0;r;4nhpRPgfhN+y<( zvmm&Rr?mguYH_ec{Y_n7#^-Sl=(;&MU$e|BtExcmef|DDg-Vh@m%+;1+-U^V5W$jp z9~9@ey%IjtA$cMOtaRZ$cVg(@JwU}A;d30V6`^|=-l}6m@geZeFm;3Oun!CKiY_~|j~dHG_54Y1x2W5@H15!i$ruAorR!-OQQQ85G33kKU&0Op;MenNb(KJ_yS_(830A))&VG0L3_Bwa4>7Fb*`bQd ztmLO5p%Rmr7y;QRYd;UTA*A##c$|TYLH4YZ#sv=rxKrv`D0VhD1 z-Kw=hgh=WXL7U`FIg3X$6Qk5j#!J)F6B7@B8vcsBTn|7py}Azij)KaY-0J7~3sEHi zv}pr>V*GP6>nd)arJzWgdN5a?;x$cuxY?~*D;XcYC=(?kwUufWL2qQkwVLx2tUhzF zv{A9Iq@-jOydn}1?$BJ9W!sC_YXcb>tobKxeLX!=q^F=@10_xe@{1M@PtR+Rn6lsY z{sMuozX`7{Y8OB1dZTFGlckQz(&$G&rWdbHG3_q@Y(~avrVh>kR)a!(RV4Smasb+> zjo7A-_|?c%QfyHt;BLq^h4Zx2mmpQ?vZbDH%m;p1Q*TlK0Kbrua-eXXY0?z2;<8O) zGAK5~hD_D3U%v!KDMi81M}u9aep_+sCtl(ni|0`368uB6@edCy3!go1^yMf1TmK*O zYpd{?Pjd7Q0Lf)BqGHsWK=l5yT&jd0DY#PD1e96tels(duvPsUU4yh`{y|njK{LqeYaqn32nh5n3O+ypDTKg%Im|8?t%t4D>-o2YJj?9{ z$YGz|>o1@~V{3n7{$>aptb!Xj0oc9p+cNk}I{9k9T9>(%hF)fLnW#h7Bhm+zrJ&-r zWSPGbamQz3Vv6}=EUt9xlqqNK*JxyFM4-F?7#=`kq4`P+Ka?_3fu^89B!%j#XE}91 z(8U0ues^f>7&UiTfJA^#^Fs7K4?OVIsb{KY;8(kI1ctX#^x|U}?-R)<_$PIrnzpq1 zH6*mTBMTa~oUd=KdJB5jkq>{g|3MO(oD^!b7S%+X`tM@|aJMS8DOCwm_*l3m$jqc2Aok{#JqH6*D z%oDz~2IprEn$S6MZ-L>Fku69okv#yzVAj~wbZ%~Lw!e@8s$Q=>JWMNGm8lGl+_RX8 z05Yw!efj6f&z#va3Xl62X3+(rS^;om<7zkFc>+{MRq*?+<>26e7IyE=*#{ulPP~bh zD4AUgZ>>-C4sE4?Y>N~GOGkY-RPv0f$d8YYUq}W>fW2SrFd~xQvHY`G_9!s*<;(NK z!^7{lFOf$;HVqRpkfr@MLjUW7XOo_Oi$`r)sEZiLRfpkwlQ!Y4eNzG7BMWjzh5_>x z+4l2*+)4|*0@ukACv%|GiiLyY>+I33 z!dqQ(;xMQ1GyBpPmWrp*e6kT_pWuA)h={aJ(~lP@LX?%2=SyWtM1Xt(VqXJE`VJ6j z5Jy@-m@m5h5i_#qhMe4!FW_@SPR>QCH^2mbPs9Gfjh>l~)D|=v2=$W%Vh<3Vz2-EI zpj{czSx>beoEhvI!0t|vgFrDBlza%tw&WJp+iZJ-FYAozTXW)!)6967IXO9x_w&Fs zYS!G7lS9**4-{;YZcE_Qqf?{E1_)2ML16-Fj(L&2;Vef8UM1fJ4x zC3VD0|1OA!@gAu((p{byb8G?b}Uj&ljml{fJNl*-OC!-R+Jl5 zi1sCWqgbES6`$fvt|}?inb(r7j^}N8n)gJ!1g!aJ@$DBnHS>2Y6K`4;1xtVfk3&ow z{^i*PG<^l4?E@{2CdehDir^c7h?a$kXeI1%;vIXRnB;hsI`GAMIt6n&u6F-y%G;vq zczv0hRq}7&zt@^En$F=D3-D80kp`{m{>rGliwhsU*A$r@Nd55VXQeX>lq+CbWp71T zTfn$Y--kp<=@-Z+WYtsPv$;ecJu${Exibl0_3V*C42j+M!?ta{=x6P*>56`2phDppX#&2^1Rj zY>dw&i;cVV9P_YxE6lXwm}V)nYC!2A`uO<6b3+RV52@+tWtG*Vgw=#0TMHj(8N|8J zT*U({T=4YBKq~!(eEtHvOsNT#6mS?pk)n~zH5q1&Rr)D?MwnW@j9k!V>08$$o5qAJ zl`465a6&;2Bt0c<-j@y;`7Li*85xVDZ1WAb)L%S* zp5fkM>)^oC{FpizDjnMMP@)J?1;Eddu)Fj#Odtex6Pog$M3n}|sk+Fj`7 zZfQC1PS{KE{C|{-(HM~Q86XPR1Ts75#K^FZ(h9(-7verwkJq9Dz*HE@f^m?nJFfpE zvSduK<+Ve=8ikpbC$qD&B6OVp){2pjm}(uXWVEz-_lIB<1@eq{fGW`pVM^V*cd@U) zI1(HQlzF)40R5%`f+QpXo-(nrd+2Q84STEbn<&=#^~(%Y4aJeS-s)hLC8McqcOSql zFiFrWDFiknQ0I@Juas@SjE%)WJR#B4{tw~$E8ukrF21L=jEcam69pwwQV0r4z};m) zr5?~#qM)Lo6A1>XTRS_tCtQ?~y#9xthcNWfgnk!w=-?F4n*eG|XQ8QNR0kwJUD12M zjjoQHb&7oy^z`&Ut6VRb_^!!su8c7t=+qNDB67$kmN`g5HmtIy#(d&a2x_n*Qmo`m z98jq!x&GJnnwK3~Vo(#T)Aynw_?D`wB4n`CAmiy^SZYZGdFITmKkV%)2?+^=+F-)# z4Y(4ktE(TN^`Y}P627ZK}q^uA9&6WBO9 za0S_lV)eUV`Z>bR-6ceGuJZcz-@of+y)QgzOGrqV1fK(skg&(#oegYXNV?Uy6F@As zW(sXMSTPXW0ws?2!|!hi6EibmCUxF-fFzdlM26?J!gLsnVtg98(J*)P7?dxtEZhsu zoWju74mF+5_%%KKcFQHRnuD7g8xepxINN0KCY!BVy-*aIxZZvThY?VuEadgjBqwM; z=sNDp(?7>&fd@lYTJLZz+p<#v?t52V=X!6B@R)sD9C|9~!-);)H?!B01W1hDY=SJQ zaGT`NLEElX7ucJS*PDQP<1IM}GAA5k)@TPJ8gEonB^2luKt=$3#+!ZXZ1(2pSORQ& zxMoei&{t@{{!bb@@8O=MM!j&`m>XoW*7^(`nZSVqlmVlID0hU6d=!LFXwYnpJxs0W zD?_{5^!QLV2Z63%lao>Vc7Q%qM4E%ac?IP82QCz(r6I`pqEa(8F4gbPbN)TCV2-OIr(g}vEtH>p4>2k#D!0X-WQmE11`B}iVWcki%$=(tSlX;Fd>E4vHk(tH7xLc(!k!2U-B5ad3yNEE?+rd6FY z1-l*{G?bB*<+c97>YAV=mjMZ8g~^#e1ca45LIF4b2HZb%5aKbccF-G6Az;~>9uDBpnG=gLs^Ym#@T3VXHPV9fCiXH=gc(&kh zk!wq+plH1CX;3#sPQ;z9fRe5F{|prEeG<3neBoH$gnB5JbZtW2Kd11+vsLF3V8RoY zUczP5=HsJ-sQFh=$NvOev_!+a@Qxsh2hp$(=+q~;xo%5?y?t!(xO>mT?Rgaiiwjt1 zG!Tf#bfT2NW#=z!J@C0K6Y=O#2@FNZ$-PCbrBde?7~%757f`%h?Y^I_D1uf%=&`q%(HB*OG199XvDbTWKycsMNqE+ZTVs*2#hL$(kG{PRybjsFZA z68-x_#Qa2;6Qh+Z5|6HPmzg6P#lN?g?w!(G?vP={qZ|??2mBxY(Bu`Y7-)lbWA$_>8bh7b^XDTW-b&_DHQbk(XeVoiPMCe6UnprwLJso2 z(c3aJAH8twGmmy3Fjoom>$@8*7;8;yiI6ieM8kBhIYhKklMd~{x+Y%OK>Hz{AC&)% z|4V3UKsn5=4VW8m>z%osivGS_26$%Pi^V)Xd8dmysuzpd`Ot?KN=O|9`Bexg`~qbN z+@?m@o~RcOA-?wi8qid*S-^Y@vSmi^Hfm{uQqbDkS|lwGj{(NhVCZS`imsGfc23SG z7`p2MY+{%IkI3RG?0lP6+G+goufUyw!x2r*%%GbL*xg4+Xc0MRs;grl;10bKye?qi z?9BV4yW8G4l+p*ie$2(vg8d#=@>Be}uF>;jDf2L#Xl-7vpCXRl3yf`js*QXMGCL`t zM`zETRp7p!sbM~ZhUzg9jKJ}U2_`P%>i2z7=&~0XcxGeN>FAi6AXLUR|$BPMe zO>fO{W`fBlXdmioYKW?;s%xB*oSc>w+^+P&fhp=3cnXmG9OOCxC*vc0ff{G1b$B-w z?)cl=^{@fIzqa~FehLE`W+15R5C^{tG2`&?Hq>P%N^EQkI!jF*0lOFUPYMVGL1je& zVJy^-iZTC}3GYCbU_!g&z_m8yGql%KzisN}(Yjm*+rjsjfHpjUEl*RI3Tqaos~E+_ z>G}&z!`{8SQ0+Ds1P`+jOlk7W^Juyqs0OYRxcv~bc?~(QbJv{GRBYkYKsHf?X%NW2 zp`)<@0Rg#mlAu3iiRuzDV15Pzz`0)^wBZ%h5kaACB_000c?zdA)YN)^(nlC;IH=rc*ES} z)fbM{yr_4~k2R$7LHj;LWj=_hbnTkny@8TU zL<*1!1&}7k2RTvvZnJ6_ft^4OAV(wzB0D952N@wUxL>xMjuhVF1T5@0jm(W^)GwRGB8|5NTJC;gr-UWiWVmF8oHQ_f{qE+zE3E55r<=e61Jii?Y7G&G*785?us1u+8bBv`3G zC_tppF>regO-swSkalB1;pHcoFS*l84DVb}g;Wt0Xj?r2?4WuDfog?5Grde4V{nTe zf{r1JqQq5T)C2Ok;*e3g0}V??TRV;sMmN+hK7=)dk30lqKa^JhL;?STYD&+&1Gw4P zKzCjP?!21wC~LwDJ^Qy&dzNC;hDX99h+Hbn%gVt0D{`l%ft=Vw@PPr72DJs3Uaz>5} zS!}XiIBti*?cd(5Y4puK4{dW~7}cWB3pp@Cd;=Jyw2BH5L}zUmN(AgiYpEgcel_6d zSIYm960XJ;egP^gsFkBc23xtH$KrK%ksvPE5jLHCWV^>MC zpc2&Aw6?wkZpiyV?QV7OAPj0)!<_$b)2Q{w`?lzG7cxFS|ERL^n%G7g|J8y=t@XTP zd4|sfdB<+H_}X5h-KWfhsVO?(Pzv0DBWZ@%+1b-!7W$oPYBTt>Ytt_sf1&cSmoXCa zKfsh_Rh!;eQl1J*kJVt1M1=Aqebw>feMjYJ0= zZ=`Pd&uRM2SG&#-;}Fq2OiyQqiigIwwsM+i1qXtnqe<`y2+9Tt@bP;Vlr{fWdqM6C zIPpJ)jXhA!iu{>1&QfO)upgv=tgs9yIPpBjkDxf7<2HC-kUo=W@jisTWzy@QcF!cF3#vfMN*ObDn?@{ZB)gwBF{B5G#MC4$z3uh`w#{xvjB@g zEx;IFaQbJ0;r;$m4Tz*aA;zxo_}l|{p918}a{IkJJ#T|hsFSbwyR6>?>^?^C?Zwj& z@HA@hr$fgSfi*$_3Ii+YGrK#Ppw^!|iI&{3JxiQ&Z;Xii&!0cz0X-#0vJxQTj{hg0 z7~4Y`6ci+2e)f0GKjT?pb{>hr^eG!5icrgh6LwSo> zIkrc$c$E)M@dswvNmENn%ZFVqxON<>?)+T3$5~ci4g;6$oZ5%LD}i_llva4m580&f zNMpE9TRe!#=x&g_!fpRf)bR4$=7IYyI#mbl5pRx9ex5c}y%1_#;0+EA<_6`&>A?9L z)Whl39f(v;u6a7t?^%Ye!3$A*#8Sx71Y;)DimPi6LqiQvi};4We|`TiOdF1M!={+A z#n`d0VTU^IIFU_e+1}KXhA^s?1zsUgzHi=Jps9Wsy7Tb?#3sPjyaBeXww~ULibiQ{ zfS16`RiG%~gB=4x;MsHMW|xWrX(A7&4O<=SBM)^1{q+OkwLr)!v55>W{5{S~!H9k> z7K(Wa{t9eS3q-$MJ%>+<{!K57feC+oFuy2;e(6bwjfegn{Tg}DkIub9iOA`x2Z6I6 z2F@3Mc*1HHfD~84_Gx5Qa!TlfFg~fL3cNmskB^U|%uz=t9%lcHX;h)9LdReEA%TG$ zhaKWvQ~di=ZjKTo^_-HDrT_=EVSiJ=pkJv2I3uvMG$1>8S0KLOd!6T6I=m*Nu+C?P zOZ32#k_d-^mTvNiJ$aOu^+%3LZJh1?G4QSjo20;tHd z;NWV*zzc`RCj@Db^2ZvE#5@&8Nlu;)=Jza^KtE7L-PpBV@M#8AgAwNzI&WaBXQ`-k zUrRVvPT;o zAFqME6GbbmK^ZBJo->84EA`~is>WV7-yjn} z>>NxucLA6w1GfaUEq=yh5 zoZm$$H8!Xw21U0Ypdo7XEj57TbO627@BShH2SU5D0lYe0_}Jp(;c9nV^aU)?m+D3c z+~5}Uf*5FDhwVRPUttYSwLytR1iUAQQ#lFV18|f58TxL4-h9LU>M_uA3V|6x-Zrn~ z9Wj#ivDGo~U=@!tCl8b}5Rsmy1RQ%Q|9B8)@((ck;oh*nT*4)ynOdzHfNik= zz4iw@?&pb#mr4inAZ(V{Zka6MX8;F%@8C1y-ajBNIs`BJfL5bY6D$qZ4bOo%g4j^5pC6~EV04N&?@%fIBXh-` zKo_zvUxLXw@O2jVAqkP;P(8;EHoa=J*m^ibwX-2R>vwXr;|>48=Db(x2Z^}F{fpM% zAwFZhYh|?n+R8q70*mEKy}1ePfh5R>mDn+){|zD?ch|z=9!$4X|Bg3wo9$#mpB99O zk{>I)fv%YW>ut!+ba0$Y8PdT$sFv%sVOeI~-8`6*lw>f!4U^ONfA&F(TnK9|s{NoX z3qUjq;w2!znR~+qcn@9^tgP?*LE|S!V<*}0CK>PX2e<;D5z~o#Yr#hA17yK)G^ZNy z1J-)(p(uj%h`|Dm;*w%p`dQpa4*lC}vAD%<@UltmJ>W#e==-i*V17F6KoZoUc)0qX z@1qzbN6iFixSw)8<*M`EDnT_bO67PsE5nLN&{)J)KVZefa9STZDe3K43*K{t@xaXt zq5RqHi@D9luwA{{XLjXW-Vsfd!VNGfxnXFi*x|yLb>JMj6GE6s)@k$xQG;CGbUuV+ z99~WF781<8z;xslAPjT_03LnV@WuQi&H|@u7*9*G>CMT6z7FfEBkm3sGET8aRQd4l zGQCRtPa(#Ddi;M}#sB|b{@-kS{~x_!&nmE_+I6(FGGJEwx$Thm*8Cj22Cox_oZMmV zLu6zdf(+GjZ(j<)WCzi?D<809q1*UR38k%Hlp5FB+uNfN_jao)KZ3EM0)V(@DJczx zVB)?2Hh?Wuf~!MG?UqoNF2W#W<{JDe{Xf47rM`^Xi7gwPslf`zR8&?P#KOefOlUZi zXYY0l;M!PUf1aGY6sw1UT!bQ|<^>hC<{Pe>%AE%yP(_831e0hKh_<7W={X%4kuz zb?XUqYgT1&N9G4g-*rzejn)|gy;Fy8fR+3XZ9Kr?dBj){q}5UCu6khFAo_9xn8L^f zguf7P=+I^8SeFTkFkH$!B*_z41s#U{zU~2|=L+unl$P+M|)mq&UZ8HP&u|~;<$FLBVM7pI(T8rM3%INd2DqShUkC5H7eZfxP{T(=C>TsZbU<+v7OTOlu-ebQ~IY|tG92vN-Zo2!!ckBx_-w|U8AZZ3n4Ifjf zx!AfdA%d-7Vz|M55w!b>!Y(y6wU`Q7OeF1Vt7F#bzme%!W7>t5RH4{L--C!rC zgIJdhga_uF0TPwf($OPGoQyx#xT^0waVsDS0eCSaNCepsKmGdUOBYmhcNB9$aJqWA zdZCt%8Sb;fpP$b`lvPx;O-xb>>b4DRhtT&;R5+TBfF+1FP^vdrNSaHlBXSs_dY19Y z=Hh_n3G5^{Xflprm`LC^fOS1`5+`(|08ao#4&e6y(u;Sfq3g0q{zWe3Lo@xPV`GB|Z?Ky&E1yQ*$#1GxH~Sn7x#HM629W71v94 z(;z9|$^3=+3pu>8Zf{2N#QG8sk4NQEt=C50P-#(-r(>d!V+yV!{)e5IF+DwBSEdH- z$Eu?kiNdaL;Z=k=(4=P}TiXc}cDb-6050YCEE$&Buqp4mZQGT>gjsN`h!EJlDv5ke zlP!W2RHDX`$01Y#zoUdWx*XN-%5rpX1bC@C9#6XW-?z&e)C})9`F%3i{^i+qV=Lb3 zxx$2x<8EaY$40`Xj$;y0zPoo8#^jMqmIiI2y(PXWp=ibi?I)^~jNn`70B+ZYlA!YH znmYI$NxbHvCf;*w#$LbUJcbg6<3Ss)194xBu0R%|R3;HEYIYvg#~Mb-9HWI*MI}se zm$6u#FZ}o$IjLS|Jsk&&rQ=Z*2MIkH#;gB)GBezYj)sRk${=%< z=y8eo?iN+ZVjv&x!eg~br%?|?V=Yj#hCvwYxi}?+2*$#S+gdH`_~}0PLmqv99lGQ| z@#KJ6d=iP>w1UcC_>N(Ch*St5yWKOX98xqw4tYXjzMA0W^_7E}Bn|>kl0fz*Rc219 zG#0M6=tB)6+G`(%n0`_VjQcx=spUvx(XV>odEgM!Of8WjTBLjJ{H>0^75#%n_l6TX z2?z+_4LEPXkq-$C%>g2aPv~~crv>7pL+zTvQIWM~nV;8}XJ5UQ3xE7ywY_;|!@(j+PxG?(T^7!Q!A7a{H_PNo-JY!szK0>-vW@f3%oRWLHxXE=WnaO%k*>nEgstNZkT ze&MBD9JO5o%Mr=9kF2FUzH0fLKvKS6El@}UwHuI?X#XuodU2A};{u})MP8JZqbPxE zGYm!HziPSegIOx>G>iNgiyxF==vIr{d9iX8uD|c^fOV6!H^H!L#EG4va*zuu9Qyuq z(OYucfq^C7E|e!HJ}n|ups@`vowHNw@j`GQX|#C_`c?ULsJ9k3Lv$ualX z`Ewlj_y?|Sz^%Gr!*diM23U)yh}Q2+MjF4Ys#`Y692@r5Hu;-BhZsO^=*LtK9jZfX zZXLwm=Le(!6%@aDle1H%h{n8LT-l3}InBJeaCS>;Q&MQq#xzIR^|U(F976S%sImqWpA`<)wDT0J-Ozco%zeaDr+If8AT?NFQffy#mHLE_>t(DPArqV9AcygNfV8p1hzoj?aRZ#WsWA; z<9ApT4h01V$0ALLgC<#WK;C7v3Sd0h^(gHwZjt^aj^$=M;^6)>ZUOJkoyYt#;Nv1} zlvitNg#HA2@%Ak+sdeiQdCW9#R8>loZrQwbt1_|==N_KN;o&I&Zb|KKV*~*zFaMS;rDsaL zJaCfzc!n>uNZHZhN$e-#S<{Zt*6I}A%*E%AeAu$4+z~t1;Z&b{_GokGXM+~}pSs(F z{ekX>m{ZP?O}*;#JKqNe%YbU!>P4BQQeQktH-E1MKjLm;E*hW5)$f{qlb1uZ0k z0D&p2QUWyrw&_K6OcuSN^LYSR9js{i{C$CCOrkP5N=Da7 z#SOVj`kb8WxK(+Wyn!D;1l9nVl{a}w4h0*BUZ59wP6GleOe`$*z-o|Uxaf3>Q&j2~ zeAQ|J)w`jVl3AGdaUgJXr(}Vd;ix;co%Q=>EIiq1y8R>8X;D;oypGYrEp6glJ z$cFE<-;eaB9(U+aF43?RQV;+tXm^i?7QH*mei8MH)#I%#5XVcJXBfMYwpyac5a?GO zm`##YS~sRCf&X#=EBAO%7SRD=M+<&%xoEUWLNbpe`~8XSXZt@rPnMIXJi|wB%|c5%i+&%#01$!hrBzt2U%4_8#)86nsYN}dfk0w)o*m|5=8~yxa;nqO zjYDg5Q-N!?TE$YTy$!EP!;|`<@{;blrrDAuEa!G9ZrQv!9@{PtZW7i_uA|*gzz|ut z=GA>EB)u?@vnT$18l-&WNCV=L(WF0?i!RpHg(X~`N0=Ob_#HPFyJ09IA)!OSf6Hy= zYKIOv<_y_a%0EM-h(kjy=Wh2Gz4b{6aO-MAk3lH(L+_c2St$kcKR0uEzgL#whx(Ek zd&z+=@AAVF@5{Nqt-p7UhzbLez8$h%x>SJxkM|$O)YLRl57=D2|WR zZ+{jC1G}SH5<{L?#^poPm#-{!>8+)^F&%Pnb4dBP*98@WGW+!CW6w`r8>G#^k!zWK z3ix@J2{$;&)B+$vMRtUaF6bWD>ebPk4&3Voi&+P~dF@jr@7s?UC`uCFcK9zDD%@n5 zxB$;v_Z_GacBVgTn<2(n*h;iU%TN(EG%>fsj8^NeQ%_wbGHCB z1Fzo2&$Cq_X1RZ>W|L0jd;9`mI0bNV+2+O>XMN#58IL%s;)gab;J_ll)>~sBl^`pC zsEEc}px~v#23!e{)i8w=#m2IZ=Uz%`r1`oTm$v?3{>qU zvSNORhldMREkEla@%HR__iJ$b<3}1vjt!JoN!HjZ4G_mZ8kDvBx{qTSL&47q*(spM zi31Hr&X1A1TX3}?_YlJFYN4ZR_rG(Qfy3+0xZ1Js+W{FU&IX_gMLJ){EY*T=M@Xig z4pAe6uMy8kSb4-{4+c%ogG;e8yIf?pfuU+zi@ZKmG3IB8_ty?NrVl zb#*ANwCU0H8z0)KHNHQfYP5cw{A=3ELMJs^@uI;=u`Md)>$#BK-EG`r)Mj=49LD=AejMS+3XiqkKZK=@*0_zY`k-~sZkBoYICT;;*sn4MS<0N#(iPI zJ3@eb&u+WlX64%!uS?F%?=W#Ezz9s+&R9=F=BzVF$Ei@h;)H0Ri?>YC_n8uar1k+g z^{_CGb?x)HbxQ+4IT+0pWKH_Jn?_ydry6J(K>7*lS^x5wAKB4;$@$4lX7nBh-09U{ zagT(eQ~)0(ey&}i{LxM=0y<~ErfXNCdr2o+C)y}X_p%~oIp2R9ZP2V04Q2&xA+c@ zymO1Lk$@o2b_KdU<9qeYw+$MJ$jKRkC36~pLcf0O9<)B)fGzUy)~uS47}=D=9S*2> z1a(=LFfyBPGHAd1E)^52b?^?VAd8F*vo4m(w9k^(D*5BFYP1`MF6+Gb6-pGQH+)bp zx$zLeD+8|b9bH|5yu5Fk!X7=cG8$5LaL6EL!V`O9JU!J)GxQ8)nFZ931FN1TDYDkK zC-e%pJR^8Q6t4^f;-Al^|GN;DH!5cZB&s~38M1ejr3+9uKYsvj!Bq?t(*X% z0(enXzw22$M_I5$dIgQX%TsiKy;8wwwHl$XcF#{9>G=Mgyg9_Tz>1NEvj>tx_!bf{39L_o)%eJb zD0dvDesLi;Crh*vMHjH3V?u$NYZ%OmJQgloBy&M!TUC!c_y~)th|8@@9g*3qqdy$J zeZ3CzP$bEZyxqhp;}B~@n;jPjXH-W4qA=n!W2&V}P&gUzAGyww?8~OmAlf++K}85% zH#V*oOll4J_f{8{kf`gK!~K!;>cRc{>VtY;+<;sZl898^SOAj0-Y4JzBj7gMxPIYY z#1Tz_c12#z4IU(5eCNT7kCP?AEMKr zX=~Mg(PI`mZr}Cu@t~P#h>2wAK$BY2qk`_~Pp5t2V309Y6F#SX>*kk3f39CyaFvDf zLju8En3T@YR^J$N(Y1GnH7=uD8)2dOEnAk?Cg*&Dg(+UZ;n|6YVc(H7=|FX;D z+rD#PUy!T>shj|kM!?PWzmturYN*at{7@3xW)Gs?BGu9;DLeyokMj@l7rjU5jo*YA zdAQO9DoX+|BJ%;r3Uk^d`cb%ZIG}n;GNye#^O91y$g#l7WHA$eW@`vkJ*1AUM%_rF zt>rXwpjzTN3u3oAnrdsK!im&CEhqRzF7ST9N|_NJ%xA#V}^f##Kum~6RP=x_yvNS002BA-sCPC1uddzXt|8b zXl!zBCua~N169Gk;Gk%*YOWGj`wUxVnTe*N;uYjD&)}tD&`f{~IBiL{W`od$n!g%- zIw>ei2(hN_Ug$bEOid8nwE}79PC0+zGVwS*>kUNsbhK{y(M_X=$7U%DwQfi70<{7z zqo#;iS9rlxVe|=kQ$}{htDAD|pOGbo5cb(6+6*cuH1vd(y93s(!+(biBL=)3**<7c z%^S#ShHCY@!}S%~+~nPbkauUS2z!NGEL{^WPmkRSNVq4!z(%|OSV*;0nD`yM94%DA zSoRt7ZoUV5n9DxBhyM}KK$hepaTqdH{?~>=0hJNZ(zk_0BO5@ zZ3X*QAY&0cU8PE6dvKAY$vxyE%0ZuFz(MB&1&V=iNDzQ8VtWJW6rBZjZh@I8?-8O# zwqD#{Z^QqMqY<5*n%qhJq!3F|Ux&<4M?=GREMDdkJyIS=oS8`93hme8 zSM#iyg@8IBB*eTS%-8p%k#Qh0%HpZC&-i%Ng0EM5?_!nYp_uMWU6luIJI)*@q8LG; zsR=l&E@BTo5sBb*u7{UcB3YFvV{DczqaKMe80xE9I&TyZP=y{r8wemY5s3q^(5N4) zK(mrQQVeZ;djJ5jkh0${Wl7nHy;ncOL)-a+J`MhHAnDG+QgRA$OTy&sau6F9uA-cTo`9x=pjmZkTJrV4kCRuDnQS+3MEB!Q;uC^%#m;#BhnC*9VTK3 zvD3e{3u= z6}`Vx(iY~QdF)+S60r(sf&iG*)I=Qvln2OAI>&+ktS6yzj0`&NqT)xeAaX<@RFGgu z>d}VqO)UgcC85dGelr$YHF|o*aU{xPPT1|6H>*&d)}aV(b!xWGLzr)sWypOiii zk5m9RhmaBqH%N~l1ojdjdF2tgCqzR917~8NLRKojR!q*wX#1%@$;u%*czZv^Qq~K? zGm9mhA{=dj&_TmNYC|*_BtV(cl<%DKp8mWkN=Asb8Zclk(VnC9&6};eb{$9iVr&)T zQR-cRJ&n?I9TuxiKFraDhpiYS|gli$!Rb##q7sy!cJkMoat-+@RBTYaYE+Azes>E>&IK7%?(K{sKzs)%5ooRKN4Io&; zg7-VT70jqN+ynA2A&*yq`%j_H8 zd*f3E-#}BO$n5&~^KC(bfuKQ{>x=eySpx%UOSUnxb<8n7Q|jwC9)D*~?5?-AXExDh zug{oz&y24fG3bz<34I9mIe#!u4bq>F1W`p7+g&)jBEP7=EA=@R+=?4iMIy{GLO{oG zWM^1bqPHiRv7P(2Fk6V)vD@3G(=5#eWbXwZBw8|`9kC2p1OG}>gcL}=0cA##QT|aZ zKOL~`4$#*1kT`@D6H62k$Q2#Ux1S+BVHMivbNzgt!I$x(_^U>EEr|< z9F-b!-WLOvBLJ->@>r_;BuhmkS3)Ts0ba%=enQ`q z^9QT32g#upkJgUg-ydiL;TsW%aWJ|7c$J%by9a%MnJ^?IYE?9<5DK@o){C+z^b=H! z&J2o{`}P*lJt>#_DzU{1!(4j#jU4NKiyw%_l6)XhbRx&^AH4uxoWwUy@v{*a3C0hd zF=WnF@D3zZZ?cUmJISFsQ5>G6gZv;0ulAUS4N@?0pJ!$tOhfk9Uzd`W1*M{8DMPy( z!3foI*J&Hp^F4k4z9IEF-#6oIIO7>1J=d`NOZ5__GqulkV__RY@?&5r`st4r__qk@GsHJ;CE){CVD z?0{t`RHBEVVJR`DiB-YnacrPj7iLh;FJ8_S2L+{#%qL0r3bgN$$Rc$8U|S{Az<7sg z6RseFE97>0%Tw*9(XQ$t4)Y@w@Ea zq=yF??SA#m3a^*#AI+KQBKFxm2e_eXo)C}HorsQ|1_)u0JOseu+SDWHD0$=1GpBQp z6(NW22cfR4nC@e#Vb))YA|oATyERa0iSevKn~;%JO<3sT0f*hdbdjwE_OXKzg=hil z77Zjh1NAqqUsv@5fcK7Lj1O(#k;mO9&$Qy%5(RQqVeGm;2SW^X5wxa&!*c3J;KuaY z^db7*#tFL6@d8=r?kBrHe>q3PxYIp2HMceFa2jlhLt^`zN-)hI~NC58a3-93i>=cWntGZYzAd0_e0El>$$#4m`g*@9o!_^^OQT;!xS1=ZeH> z>KBDxeNFB**aoL2Z}WlZWema^#7=#2SG=nt$Ut1iQd?$=wCxm%Ht#Fcf`G&?z`-n1~!b$zOAIRe+?U z@@i%n;FDtllmQ9q{5(7gcxqbUA(4vNW)Iw6EohQ!mG=f59Y2)be;5de+3`>ap@(b@ zH}mNIX$I=oX598_0RB$ zXM)C+8UdFu-M8>0g}@IK0?1Es+MF?#Y;AyeEgt=tSGrEqX)jeW^=9%YP<5EZ(>PK* z*hVwfiaGcZ7N8jrmcvV9o^T_`JNOZeUz#?f5j5Z91KaA=|B_gr#eB%#mfUm_M3A;& znZN58ezo(T*e1(kkY)7|kh}zt^1JKh_2EsIz`(lRu()PaB=Tbf75Su}SujGwdP1&P z@@ovp1VNQObjh<^54OwgD8^Z@Ik#w<|EuAb`)k{-ShPM#FqldTa;wJw@Y~rBxWm9O zWro{RaNCjN8&LWLBI0g75@z)?6TV;57RXm!VDa#N%%=fK710$y-Rwi6+y5#}$C>Mb_>&2lvg6Qac!GJ$S(6{3KisCK!?P6GfOB>h(-Kl0^S4t<0vETfw)o1tj`Trx#JJ}PsG0JGGWhlWT5blHe*wLh~ z4e0zgK``Bwq1JS8bLn1lJGHBV#u@lR46U||+vgK#4$VLlrDNpZ{Klfv*M)UQ#RT^XSyvg_k>^{mcZRt%Rm7904c;)@8XSK zU$T!msdnzBT{<{ZfbXnQ{ku2B5g*!s((oCSpaHV(BDOM`A5iXBJd!H46iJ`3F_59v66XiZ)#&Qm|((JW1?8cV;5 z-|m4Rs2-cF7V|n(f^6iWzSl$gr%ukuW>XWBZdAGT32G=L1;@CPiMAGoH6$>7UOEg3 z)j#PV%5zc^qhrh-afXZ&A+Pte zk9-V_Q?y~e?gDBg;L)Q*xU4r@=Y!GcTk1~KR4go6eKjYxL!_e)uLTjGH5LEyETRvU zbsQpPKLIpV^j}ngsaWXF2YR^@$R8^hWj z`yf_%_DB0mQv5-nQaC**OC%M@+_u`!;~tSLlG6rTtdAoUjzd-HeA2$1%X83aiNRRRNRLfnuaFEZUw zI5!-mpYvTXG|RrRVt1G}$0Ae4%C~u6m^5Gl3-B=swNX>X1i~t!aUB|$69I^^3xA_PAikaJkV-XHZ>YH06rboKr70O>sAMMJ#<3deTK z1Z3356m%m!r7DK?tXcgb$?#Q?0EwuzeR12h(xbL&>`2u zF1P*WdM?OKK5&($sCDTo`}SzZe%K`Xcd=^_PLRhTQY_)!qu@{UvcCn`opWM-EB`NT1<<=(}by_(u4yLC7`A0~aW@@+J<%3hWKg|7fd2!Ol8 z*nE=%zi95UasR)3ZUXk%(CkjN&Ci+D%%KhU-HGkpV2kZ9et_~?isHlaorH+9H#V?L zUcxZFN`WLMN;Xq|rsGNtl}C(T^~VUl*|2}2u6>PH>rb~E5sN3vgH3kibWLbj#dl2Y zDlZlg>A3ddl+-~jX}AcGs)U#}5)hws1mTKD@fBN_I-wwLKsIQVJcTE;pA>EDUAi~8 z{dmb}0WSsg@jk`!H$+>moclG4TLhX26~+Ybx3&TA{}mqWhNDUGmrwNMqo~PZjcM-q zCTf-685kIP5oNV5UAh!9edF4--};m32^dWj@T#D$gz~cDrc zZM5>ujs4_q_gdIOML*s2F3Wm30KLkPb?Vt_%)8%yMN&Ys<25xk1lPMknfFE_5%qu<`zjm z_M>^tXD}k9sSkXRQ=SLpv5sJSJ33~^SMZ|{16)In&VM56?=NX;&tF-}7BKhqxX$0* z9!>*%)<823Pt1cLj0akTuj}@^+X98>UG^P{pnXV3$op>y_ac94lVcy)&I~ojw$R^_ z94KD%b6x*%pF5j3#D#jvr{O~jwcJ+p$RhL1G~njs6i{*6);ml3BgW9zZI0&B`sP|3 zgxJtN4mcx&1lcH059I&9RduM3>nt3-Ei&_pV`jgG?3H=muXJOY5RAR3K6CFqNAoCp z0inYwv&x!hQ6RzP(pDoRs$@};TP8^JxpS$oqE3Wrjldd&uRfX#v5-VKXfPt$Dmx{j zZRb1t-j2;4;u0cRMnZ|SkB?iO>0gSn)+v-CeJ*Cix+($Ep7D1Z> zAQ;?sAHm=3w6)-*x)zW#=(a5_T_H3@n^4kj=s*qd?CW4j+CTM=zD&f2<3Evw>XBhxzTzp2Z#A=<5_Vq!Y8LtYb9WMj3zm| z@jAw^t)K?HmVMbt&lYmlc;2t6qF`*O)SBci}wF!Z*?AdHI=d{j*iX2>f>Ms`v~*YSDKjo?Izrg3dtn}wnIIg>O?QoAHUhtlj6NV9hcmGh z#ohI{LQ+6P;6ZL`k&Ruca4&&#YK5~~PC4uRZf(o73_|;IU-Vmws=JGO|4c-7A9A0m zaorJ~tn1_ci5@CKQxSWh?BpmYFLb0@&Uu;9(^J}Ns7cU2FbVDV81{6}k1wx*GWbG$ z8;|p^x%njBj|j||#3C{1Vs+~~7mADtE)fs%Do#D`{;Jf)Z7%>@NUI6E=-a??e0l%T zUYAS$FvjUK_n_@k4As+|oq||M3Nt)xRfNMD2p1foo+2$>t6ff(1jPTEuXqwcNjVDf zS9OOKwsP2eo$@xAVm?lQbvG&E}3c zLpBMJItS_qsNg_`N5PGv5B&olp&yK#pO~Ku&)&PReFHM)bJA2$G_b>m@~%#~S=Lz4 z(f90f5e<~*Mw!X4U+=qwE&F(I3Y;4#qm*PML%kQD7Uh9Pa2I$4y>i4P!#YsVw&MVprb zvlMy-Re}mR1yxAFfXHx0oO28zS3i60u1h&b6ZJNDcVu_vg#&*jU?!)i$xQ&%F<4OD z#cPbUG2Br%TSEZY+>zn^Bz63HJA0IsdsiX`GN@hj=~YCzR}Gt;_nFopOo>{)uM#{~9qB3| z1T$V6Nex2WFc7Q`C>3;85SR{hNAoCFpd(m7D02!80SHrJ=;r`Kn!@xC6|zf9utydj#>tKzP9@@15*lCXUAR>*1{7niko zCa*1DjL9hrHWg*XLszcezG8S(LH%lg?EB)j=>y*?^0z%L8VpNcT4~mK=e19|8TZjo zW`+Gbm#*+Nk@kc)AZD(c9PG5dpyIKL>GisXSL%!mCr+B?oDSurdo9n#v|*VOY-{$O zriDn38w|bFRrqZns4Tkf|NRe}#XMoCMaBb#Um95gnPn<~H!_|C2l)8|eOY^lhtD6# z*>?KFnL8oWH}dDr*wg(|J?y7NPJdX)ZiYYiwVoEGSBBd@w%BzbY2RStL~Q0Eux%e0 zxC>gQj4Q=}#cjTzWyRooc6*M~n~S8$pBsDGr(pyd{GMHmt|SD1YD@%wphVH7Kt`Cv z$1}k#VIO>+5QX7Fdk1B1?l(M2$EDMEZ@R2qnoI8xn4RsMpGiyv0j0ft_s);Z9Pl0d zWV^4nIrxJh&qUM}OqgrwhfXvslOyUtUzF&;$*coMC?d-v|+CSpqG*i0CEYB_Zk{|V_@>E0otXL#6r?pw*B zLb6k@yXbEaW$Kr*X>sW)aqr{2ww!@;2{#X{h0rDVxJgP@b}d}+9{Tk4^?htG8L1zVl6q>uGPRSdK`T)Gkwc-qAIuSuwHcwu`5b9jujow^NIzuGhXaP_<4-@$nwGZ}dx z^xRfD0xu**#RWh=cA(X_V4Xkgm}T+7`&iAYhpzBlRe)bT_%|dX78Gm^IlbeGd0{@)OB@lkSCI#ujVul2Jfbi&kfb+SKybhZs=THUCRb( zo1oN^_L!4{ecKN}e2l0NgCr_JT4DzBRnV+*(28Kx`pM6p34ISAK70c%8kSLcZ_CP7Bqb#o?JB{> zSx9~9?-xR;_y)2K{7X*{KiIfs_w($@b*RO-H%uiHeDwJ7B8rT4`&d=Qqel4aFWud- zW0Ll$p8Q%p5O23*a1or$P5}~rg|VYB4TIeVQ<>-t4I9yX&UVlmQ?31leU>Yd%8go{ zm6i3XwDbTL$ztj&a>3QGM@;L09C#&lH8L`iUBco4vC^Zi!a|SiFyS@6J5JG5yl3mz zPbdBSWSb`zN4Jj~^DQ=l1=*Wi|T+Uf@^A(DVKUP<7gt?di zbraKn4+b8Dks>ju{))H81{BkObV(j&Am|wwcw-!0`Ds62-wlb0iBP^><>eTB78|Q9 z1ULnDlv-A38QK~aar)G$Hvj^!>L;<`!|UreqkVZHMTU1Zo`+K0+hcC>faL(}L0@6i z%0ZCXG1~j&*ZjWgf#+>9KC?0T$E7?SzJtXE_`LpnX;pPolR$re{~HLg#=nJG2oBSd6lrKscC9jn%``T(N4H{zG`gb zASqq_6jUx%*yy|GXS8BWVqUY;oST}O5CE+lc3bX~Up-y^E49tR>`t3(e|GYY5bvrn zVR?D3j*gDl*jO_3?_*QbZ6NsXxzyCKQ!%u|g!W051^z;a4p!Ojwxp%5Nn!J5IRAsb z3x>|JMdKW7mLNnY<9oqh{GNb{{)^nxE5`KtrM{K8*Dy~fnQiZ(+qal5Q@=INEh#Y( zCW+$Q9?0N+A&EoFk)-6O7Z=4~$!AjO=z|GZ5Nt5RIrBsK?zXL>Dsfp^Y_Ptt&2}Fe z*lKBM8GX-0)CS|Q0BpeE@C$U0{<19SeZ30FA4LfX3lD?LAv1q{cdqueJ55swRZ;EF z9z0DOTesPbsUGgLbZgg!9=663s?M{<%yoRvbHiVig!D5O<4utXcRa2l6ds9!y880O zq$Io1ZjFK$A7U*x#~stti@?5Xohp!k5F+d`Gd3|NP`b`wZw&??$Bf}7CW2)&=_#tATDXqm<=6he?(hUnA zsPctJ+>$AB7rV4MH?=MA`fR;e$SA+w)W-jE4){UPM2DO;2lIhpanU%~y2B+DJ6v2! z>Kjf({XV3(uMqV{op#wDAuAu8*=k@j(oX%sAHzMSu#)yXQE!>pcyMF&w(-#6lQc(! zo-WZIU4^_&n4JaXI)>qpNo~NZ$UGjHAf5oYE<=-RH9~#7A9k3ZFMMM*F*V&NCZ_ds z=YazU5TW1u^#RXbNF53TcJ(wWY9aO`hWTB7Ip_=(nO?q=Fmdt2@7{s+Em$7n2#aiZ zbDz>xlrHKCbvc;c>FE)EuD7?BqF|}!KQq$`Ztm|9Rj{pvYhZGxJ$43}@xfPaUkS_{ zf&CV=)DdV_B!fnf)t^HL2AQ>omH&WmjmD8;RB_zrMyK@Wf@IkoiAgAS3H-i2aaOe0#V*y?*H=f{0qaX? zY3UOn(Yhg$Zh3ywMQA+K{3IfK?2&e*ZiM%J`*=B6c>WK6;0=Wa=yhr7 zGlOjAWy{{+QI9<=g-;|=G4}1abu)J2ByEK}JL7V{Lqh*ot>uZ*@bQBQHU}-yY zj^1u>Zx`VbLr#T^g;#wy&n3K`d2qsm~|!gI9rYttQueIdvbV{P<0vTN#d#xV}CAK z4y(s$2k*4sj6nYb*@ENb1u&?wcz$rm6frI&^9MgQHhw|TX`Vd<0=vDd>jtK8z_0Qf zux@pM06iGjnTDe?hD=9ARM@(0+X2+$HZ3`q(L0J+0)|6fjeo7ss3ebJ9Scv?N=8P; zb#fP$lTciEX(zEh#p=2QQ2?^O{*htGfmvi_Wy?#!e7=UE+BvxEIjyN`Y;Hb{lJ{Xy z(Uyb3o;YWS%O+$qbkrrdfTpIV7J&>Wi$Av&Y*&P4+z-fCohH<_Y<#-@&g^~@X}Lw- z4&%_LZNxMCJ!lhpH7WKT$S~TmeTegS{Tz%^xWc3ov<03+f*bYhStN=UYisM+l#~Mo z25T|g3})U>8YdtLwsan}I&p#rKFjx@BRU024sFgi5X#Y?#6&GuR9JjD-+2f&vOFNA zZGGrhtQZqQ`u)0{Qgp%e8MIUXGzEfsv3v^HAhMO@Oj~8;#W>iSxxPUoe4#h)SrrU) zUZ9l;>&!Dcnh)@rHza`((a}nl9%g1;PNg~7M~#hHDKel+KWRVGwR|_&8YhljJ+g1# z=sXhjsZzSD4o5Lz8G!LO9P9f}p4 z52s_u<+-+5+m@V9vEzZ=GsFi723+wx`;uA8ED5D;b%%!&3^t3dDl&DPNpMYBBB`m*-XtYInE@J{f zejI->VRK9Uz5wI$>N4nqe1n5;LPx+fI5-IV>Q}I@d~RCKiP=JqJ$m2{t}R~xodB82 zhAA#P%qrGlq(-Z=2i6dJ=jqYFh#{!OK!Wa|LOKDc@8Qyg@S8MR#v!^8C)qFb9BUXF zk{ScdE{1?Cfb>LWHv{UWpQ&v(mnkoI)Pjx~ncZK6h|||isC(7cW_-cL4ztm7Ku2E~I3UKn3jc-Gpw zPR8`)$tT2=o9UXOy&?Yk3U>Cb7|4^{$m)qCL=mf_9){;BL7^}q4M%o?}y-JfrsWH?H!ZB&#F?@LxZapivi%6e{v literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout15.png b/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout15.png new file mode 100644 index 0000000000000000000000000000000000000000..fb39155742264ca53976353d7b67d04d9d990eff GIT binary patch literal 25452 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 literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout16.png b/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout16.png new file mode 100644 index 0000000000000000000000000000000000000000..2c20f43dcf5f3a16472578306b8e179e1e739604 GIT binary patch literal 23120 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 Vl2)x&bpawdl_x!uJCIXi`~z$IVjchh literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout2.png b/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout2.png new file mode 100644 index 0000000000000000000000000000000000000000..7a72a8117335e36844a9ea2777e1cc48e20f01bf GIT binary patch literal 34397 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 literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout3.png b/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout3.png new file mode 100644 index 0000000000000000000000000000000000000000..61337c0eeb21aef6dc2381358cf2525bce80fa7d GIT binary patch literal 52171 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 literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout4.pdf b/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout4.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0cf2edcae0be16253aa914c370b95f0951ff75a0 GIT binary patch literal 16636 zcmeIac{r6__c&fDbWmgp$w8D1=QyKd9*c~bd(89f7>;>rFr;V@LZ(v2CPOM?Dk)<~ zh!jPc$3lhgz7HDY_x|d=-akHnJm{5SvV8z;L_4C8&_+nq1aCylzd4C zbx0N@8#rdU(*dF@365TV*0LaxY&=}ySm+go(DEQ!>DZ9qMqnPr17Lg`UlJUl;sWNB zU#S&VY8AK%9HC=xVeQ~*2gfaUH`KIrw6P+=@#MjOpd*R|fK>wITwRGIPcQ}OuK-Z7 zaRqOLs5Sa=(aD<|bw}X|9_CYW;c+>T;aP@Sv@UU^U@>`{RxjmQ&p>AXC zU?ETR1>-`KVevRP291K|(1N;> z1I~bliZ)h6Yrt|f8&^A$JzNx88EvSeC&|Oc!Ug7=+-9VHcGq2o^4VJ-tpe$*$In`^ zc!$nq`kvoK%f;j;tlFWM{`Aa+khH#$kqJF7&m_8NA9K0WN2G9<#`B+9mft*|D5GW@ zj31t-Sonquky(;WlWDXKR+1U#S6}i^kUur!7cw`~*h2g=H$RP8z?6SOn|w*U>5Emb z%I(vhDvXwM(7CdeM8Oet=$auTL*>El;dE_U5rc0e*6`g_gRP> zWZ0&>o-sK%pkTo7)rmLj*f>V=4$Z&>o%=k7bpK}y&TG6l^p)Y!$LbNA(<%3L7ukL8 znu(0Rlxp^zF|pi0{NM%c1i=O4!1AT8h`|Bx;CWVb>vYM21L~i_w^o^XGl5^<&Fr0R z3;b&FWgy;FNqt~)zW7bH%#9PmtTZy@@Ak&ogH%^PP9W!j+#H+@rB+yHFmEy@c2UrGo zagXW(ui%F)xn0%Si6%W=Ph)LcI!#%NJ(Db-C#Ls24ZH3EcTa3~`gk1fEqm%p-G*mx z1-LcN$J?63Eco_3wH2Sl^gBnMclmf+$Xm7md_Pi~9J3ww_|g8Mnkfx$c7wvtX!o-7 zaVEvjUOpva!%li~myN}+dR2C??1A|)9#qVE^QbDgZEWdXZ*m$1)0|6j)v$tmuLGVl z=Vj{M@sRtKPKDOH9T0SB((Dz_*k0xFZxJrYF#i~M`2zoG#!YTGRkt*nOZWUgm?xet zv@K8|?b${t;^c}lToY#M)2e4MkN?eJH2-ur=%!@j+I+|Mh$ zN5(JiI6CQ})=7hWpH!UYRHy&>Td3r^2!8&wUaQ11JZY{&H}_EkO<_^$R$sG^JPM-5 z$OFbmSM_Akz7tVFy5el8u)ZKg8IFk}Ax!_ae-saf(>%Np$#@{}oZJ4|q;wVAtu#+k zV$CH|5k2lVC@mP0Yj(DF??2RN*+5&sRp=wqoNt<|*Ax+kaUL(JN{fl&6S;P(Gk^G? z0r4xN1#@)P?a7Z;x86=`Nwec)5m6kqb_4Y9xBE#6EFB8po_UlYmau8?tvT$Tshbmt1;6gYZF5h@@PXn1Zk(j(MF_u|6+%)&00h^?_0$%@(0^jfpU%y)!#-BUT zI=+PN4<$GAbk196q^ZVPBk-?`q&s_Μ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 literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout4.png b/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout4.png new file mode 100644 index 0000000000000000000000000000000000000000..a1e26c37c1a234fb90f7db89e94b6a37b19e1068 GIT binary patch literal 41172 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 R*~GxFEgIX@Q`Ia_{12F80et`f literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout4.svg b/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout4.svg new file mode 100644 index 000000000000..1f194eb09342 --- /dev/null +++ b/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout4.svg @@ -0,0 +1,1933 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout5.png b/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout5.png new file mode 100644 index 0000000000000000000000000000000000000000..2bc15ba74e29025e0c1b3cf6a76b4dff73dda584 GIT binary patch literal 35858 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 H+lc=M?)JTu literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout7.png b/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout7.png new file mode 100644 index 0000000000000000000000000000000000000000..492bf311a4aa322bbcca3682f766e821f0850fb2 GIT binary patch literal 43862 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 X?jN4lJDhw?{=u%D`_!^`9QFBsmL&hK literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout9.png b/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout9.png new file mode 100644 index 0000000000000000000000000000000000000000..b0cc59893d15b21600e038591a09e2ba3f202ddb GIT binary patch literal 35005 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�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 literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/test_constrainedlayout.py b/lib/matplotlib/tests/test_constrainedlayout.py new file mode 100644 index 000000000000..5333ba8c85b5 --- /dev/null +++ b/lib/matplotlib/tests/test_constrainedlayout.py @@ -0,0 +1,347 @@ +from __future__ import (absolute_import, division, print_function, + unicode_literals) + +import six +import warnings + +import numpy as np + +from matplotlib.testing.decorators import image_comparison +import matplotlib.pyplot as plt +from matplotlib.offsetbox import AnchoredOffsetbox, DrawingArea +from matplotlib.patches import Rectangle +import matplotlib.gridspec as gridspec +from matplotlib import ticker, rcParams + + +def example_plot(ax, fontsize=12, nodec=False): + ax.plot([1, 2]) + ax.locator_params(nbins=3) + if not nodec: + ax.set_xlabel('x-label', fontsize=fontsize) + ax.set_ylabel('y-label', fontsize=fontsize) + ax.set_title('Title', fontsize=fontsize) + else: + ax.set_xticklabels('') + ax.set_yticklabels('') + + +def example_pcolor(ax, fontsize=12): + dx, dy = 0.6, 0.6 + y, x = np.mgrid[slice(-3, 3 + dy, dy), + slice(-3, 3 + dx, dx)] + z = (1 - x / 2. + x ** 5 + y ** 3) * np.exp(-x ** 2 - y ** 2) + pcm = ax.pcolormesh(x, y, z, cmap='RdBu_r', vmin=-1., vmax=1., + rasterized=True) + # ax.locator_params(nbins=3) + ax.set_xlabel('x-label', fontsize=fontsize) + ax.set_ylabel('y-label', fontsize=fontsize) + ax.set_title('Title', fontsize=fontsize) + return pcm + + +@image_comparison(baseline_images=['constrained_layout1'], + extensions=['png']) +def test_constrained_layout1(): + 'Test constrained_layout for a single subplot' + fig = plt.figure(constrained_layout=True) + ax = fig.add_subplot(111) + example_plot(ax, fontsize=24) + + +@image_comparison(baseline_images=['constrained_layout2'], + extensions=['png']) +def test_constrained_layout2(): + 'Test constrained_layout for 2x2 subplots' + fig, axs = plt.subplots(2, 2, constrained_layout=True) + for ax in axs.flatten(): + example_plot(ax, fontsize=24) + + +@image_comparison(baseline_images=['constrained_layout3'], + extensions=['png']) +def test_constrained_layout3(): + 'Test constrained_layout for colorbars with subplots' + fig, axs = plt.subplots(2, 2, constrained_layout=True) + for nn, ax in enumerate(axs.flatten()): + pcm = example_pcolor(ax, fontsize=24) + if nn == 3: + pad = 0.08 + else: + pad = 0.02 # default + fig.colorbar(pcm, ax=ax, pad=pad) + + +@image_comparison(baseline_images=['constrained_layout4']) +def test_constrained_layout4(): + 'Test constrained_layout for a single colorbar with subplots' + fig, axs = plt.subplots(2, 2, constrained_layout=True) + for ax in axs.flatten(): + pcm = example_pcolor(ax, fontsize=24) + fig.colorbar(pcm, ax=axs, pad=0.01, shrink=0.6) + + +@image_comparison(baseline_images=['constrained_layout5'], + tol=5.e-2, extensions=['png']) +def test_constrained_layout5(): + ''' + Test constrained_layout for a single colorbar with subplots, + colorbar bottom + ''' + fig, axs = plt.subplots(2, 2, constrained_layout=True) + for ax in axs.flatten(): + pcm = example_pcolor(ax, fontsize=24) + fig.colorbar(pcm, ax=axs, + use_gridspec=False, pad=0.01, shrink=0.6, + location='bottom') + + +@image_comparison(baseline_images=['constrained_layout6'], + extensions=['png']) +def test_constrained_layout6(): + 'Test constrained_layout for nested gridspecs' + fig = plt.figure(constrained_layout=True) + gs = gridspec.GridSpec(1, 2, figure=fig) + gsl = gridspec.GridSpecFromSubplotSpec(2, 2, gs[0]) + gsr = gridspec.GridSpecFromSubplotSpec(1, 2, gs[1]) + axsl = [] + for gs in gsl: + ax = fig.add_subplot(gs) + axsl += [ax] + example_plot(ax, fontsize=12) + ax.set_xlabel('x-label\nMultiLine') + axsr = [] + for gs in gsr: + ax = fig.add_subplot(gs) + axsr += [ax] + pcm = example_pcolor(ax, fontsize=12) + + fig.colorbar(pcm, ax=axsr, + pad=0.01, shrink=0.99, location='bottom', + ticks=ticker.MaxNLocator(nbins=5)) + + +@image_comparison(baseline_images=['constrained_layout8'], + extensions=['png']) +def test_constrained_layout8(): + 'Test for gridspecs that are not completely full' + fig = plt.figure(figsize=(7, 4), constrained_layout=True) + gs = gridspec.GridSpec(3, 5, figure=fig) + axs = [] + j = 1 + for i in [0, 1]: + ax = fig.add_subplot(gs[j, i]) + axs += [ax] + pcm = example_pcolor(ax, fontsize=10) + if i > 0: + ax.set_ylabel('') + if j < 1: + ax.set_xlabel('') + ax.set_title('') + j = 0 + for i in [2, 4]: + ax = fig.add_subplot(gs[j, i]) + axs += [ax] + pcm = example_pcolor(ax, fontsize=10) + if i > 0: + ax.set_ylabel('') + if j < 1: + ax.set_xlabel('') + ax.set_title('') + ax = fig.add_subplot(gs[2, :]) + axs += [ax] + pcm = example_pcolor(ax, fontsize=10) + + fig.colorbar(pcm, ax=axs, pad=0.01, shrink=0.6) + + +@image_comparison(baseline_images=['constrained_layout7'], + extensions=['png']) +def test_constrained_layout7(): + 'Test for proper warning if fig not set in GridSpec' + fig = plt.figure(tight_layout=True) + gs = gridspec.GridSpec(1, 2) + gsl = gridspec.GridSpecFromSubplotSpec(2, 2, gs[0]) + gsr = gridspec.GridSpecFromSubplotSpec(1, 2, gs[1]) + axsl = [] + for gs in gsl: + ax = fig.add_subplot(gs) + axsl += [ax] + example_plot(ax, fontsize=12) + ax.set_xlabel('x-label\nMultiLine') + axsr = [] + for gs in gsr: + ax = fig.add_subplot(gs) + axsr += [ax] + pcm = example_pcolor(ax, fontsize=12) + + fig.colorbar(pcm, ax=axsr, pad=0.01, + shrink=0.99, location='bottom', + ticks=ticker.MaxNLocator(nbins=5)) + + +@image_comparison(baseline_images=['constrained_layout8'], + extensions=['png']) +def test_constrained_layout8(): + 'Test for gridspecs that are not completely full' + fig = plt.figure(figsize=(10, 5), constrained_layout=True) + gs = gridspec.GridSpec(3, 5, figure=fig) + axs = [] + j = 1 + for i in [0, 4]: + ax = fig.add_subplot(gs[j, i]) + axs += [ax] + pcm = example_pcolor(ax, fontsize=9) + if i > 0: + ax.set_ylabel('') + if j < 1: + ax.set_xlabel('') + ax.set_title('') + j = 0 + for i in [1]: + ax = fig.add_subplot(gs[j, i]) + axs += [ax] + pcm = example_pcolor(ax, fontsize=9) + if i > 0: + ax.set_ylabel('') + if j < 1: + ax.set_xlabel('') + ax.set_title('') + ax = fig.add_subplot(gs[2, :]) + axs += [ax] + pcm = example_pcolor(ax, fontsize=9) + + fig.colorbar(pcm, ax=axs, pad=0.01, shrink=0.6) + + +@image_comparison(baseline_images=['constrained_layout9'], + extensions=['png']) +def test_constrained_layout9(): + 'Test for handling suptitle and for sharex and sharey' + fig, axs = plt.subplots(2, 2, constrained_layout=True, + sharex=False, sharey=False) + # ax = fig.add_subplot(111) + for ax in axs.flatten(): + pcm = example_pcolor(ax, fontsize=24) + ax.set_xlabel('') + ax.set_ylabel('') + ax.set_aspect(2.) + fig.colorbar(pcm, ax=axs, pad=0.01, shrink=0.6) + fig.suptitle('Test Suptitle', fontsize=28) + + +@image_comparison(baseline_images=['constrained_layout10'], + extensions=['png']) +def test_constrained_layout10(): + 'Test for handling legend outside axis' + fig, axs = plt.subplots(2, 2, constrained_layout=True) + for ax in axs.flatten(): + ax.plot(np.arange(12), label='This is a label') + ax.legend(loc='center left', bbox_to_anchor=(0.8, 0.5)) + + +@image_comparison(baseline_images=['constrained_layout11'], + extensions=['png']) +def test_constrained_layout11(): + 'Test for multiple nested gridspecs ' + fig = plt.figure(constrained_layout=True, figsize=(10, 3)) + gs0 = gridspec.GridSpec(1, 2, figure=fig) + gsl = gridspec.GridSpecFromSubplotSpec(1, 2, gs0[0]) + gsl0 = gridspec.GridSpecFromSubplotSpec(2, 2, gsl[1]) + ax = fig.add_subplot(gs0[1]) + example_plot(ax, fontsize=9) + axs = [] + for gs in gsl0: + ax = fig.add_subplot(gs) + axs += [ax] + pcm = example_pcolor(ax, fontsize=9) + fig.colorbar(pcm, ax=axs, shrink=0.6, aspect=70.) + ax = fig.add_subplot(gsl[0]) + example_plot(ax, fontsize=9) + + +@image_comparison(baseline_images=['constrained_layout11rat'], + extensions=['png']) +def test_constrained_layout11rat(): + 'Test for multiple nested gridspecs with width_ratios' + fig = plt.figure(constrained_layout=True, figsize=(10, 3)) + gs0 = gridspec.GridSpec(1, 2, figure=fig, width_ratios=[6., 1.]) + gsl = gridspec.GridSpecFromSubplotSpec(1, 2, gs0[0]) + gsl0 = gridspec.GridSpecFromSubplotSpec(2, 2, gsl[1], + height_ratios=[2., 1.]) + ax = fig.add_subplot(gs0[1]) + example_plot(ax, fontsize=9) + axs = [] + for gs in gsl0: + ax = fig.add_subplot(gs) + axs += [ax] + pcm = example_pcolor(ax, fontsize=9) + fig.colorbar(pcm, ax=axs, shrink=0.6, aspect=70.) + ax = fig.add_subplot(gsl[0]) + example_plot(ax, fontsize=9) + + +@image_comparison(baseline_images=['constrained_layout12'], + extensions=['png']) +def test_constrained_layout12(): + 'Test that very unbalanced labeling still works.' + fig = plt.figure(constrained_layout=True) + + gs0 = gridspec.GridSpec(6, 2, figure=fig) + + ax1 = fig.add_subplot(gs0[:3, 1]) + ax2 = fig.add_subplot(gs0[3:, 1]) + + example_plot(ax1, fontsize=24) + example_plot(ax2, fontsize=24) + + ax = fig.add_subplot(gs0[0:2, 0]) + example_plot(ax, nodec=True) + ax = fig.add_subplot(gs0[2:4, 0]) + example_plot(ax, nodec=True) + ax = fig.add_subplot(gs0[4:, 0]) + example_plot(ax, nodec=True) + ax.set_xlabel('x-label') + + +@image_comparison(baseline_images=['constrained_layout13'], tol=2.e-2, + extensions=['png']) +def test_constrained_layout13(): + 'Test that padding works.' + fig, axs = plt.subplots(2, 2, constrained_layout=True) + for ax in axs.flatten(): + pcm = example_pcolor(ax, fontsize=12) + fig.colorbar(pcm, ax=ax, shrink=0.6, aspect=20., pad=0.02) + fig.set_constrained_layout_pads(w_pad=24./72., h_pad=24./72.) + + +@image_comparison(baseline_images=['constrained_layout14'], + extensions=['png']) +def test_constrained_layout14(): + 'Test that padding works.' + fig, axs = plt.subplots(2, 2, constrained_layout=True) + for ax in axs.flatten(): + pcm = example_pcolor(ax, fontsize=12) + fig.colorbar(pcm, ax=ax, shrink=0.6, aspect=20., pad=0.02) + fig.set_constrained_layout_pads( + w_pad=3./72., h_pad=3./72., + hspace=0.2, wspace=0.2) + + +@image_comparison(baseline_images=['constrained_layout15'], + extensions=['png']) +def test_constrained_layout15(): + 'Test that rcparams work.' + rcParams['figure.constrained_layout.use'] = True + fig, axs = plt.subplots(2, 2) + for ax in axs.flatten(): + example_plot(ax, fontsize=12) + + +@image_comparison(baseline_images=['constrained_layout16'], + extensions=['png']) +def test_constrained_layout16(): + 'Test ax.set_position.' + fig, ax = plt.subplots(constrained_layout=True) + example_plot(ax, fontsize=12) + ax2 = fig.add_axes([0.2, 0.2, 0.4, 0.4]) diff --git a/matplotlibrc.template b/matplotlibrc.template index 7ac32f71cf8d..8660d0e1c8a6 100644 --- a/matplotlibrc.template +++ b/matplotlibrc.template @@ -433,6 +433,10 @@ backend : $TEMPLATE_BACKEND #figure.edgecolor : white # figure edgecolor #figure.autolayout : False # When True, automatically adjust subplot # parameters to make the plot fit the figure + # using `tight_layout` +#figure.constrained_layout.use: False # When True, automatically make plot + # elements fit on the figure. (Not compatible + # with `autolayout`, above). #figure.max_open_warning : 20 # The maximum number of figures to open through # the pyplot interface before emitting a warning. # If less than one this feature is disabled. diff --git a/setupext.py b/setupext.py index 0872bc0bc5c2..99c30128e5f4 100644 --- a/setupext.py +++ b/setupext.py @@ -1435,6 +1435,7 @@ def get_install_requires(self): "python-dateutil>=2.1", "pytz", "six>=1.10", + "kiwisolver>=1.0.1", ] if sys.version_info < (3,): install_requires += ["backports.functools_lru_cache"] diff --git a/tutorials/intermediate/constrainedlayout_guide.py b/tutorials/intermediate/constrainedlayout_guide.py new file mode 100644 index 000000000000..ac55c6da1fcd --- /dev/null +++ b/tutorials/intermediate/constrainedlayout_guide.py @@ -0,0 +1,700 @@ +""" +================================ +Constrained Layout Guide +================================ + +How to use constrained-layout to fit plots within your figure cleanly. + +*constrained_layout* automatically adjusts subplots and decorations like +legends and colorbars so that they fit in the figure window wihile still +preserving, as best they can, the logical layout requested by the user. + +*constrained_layout* is similar to *tight_layout*, but uses a constraint +solver to determine the size of axes that allows them to fit. + +.. warning:: + + As of Matplotlib 2.2, Constrained Layout is **experimental**. The + behaviour and API are subject to change, or the whole functionality + may be removed without a deprecation period. If you *require* your + plots to be absolutely reproducible, get the Axes positions after + running Constrained Layout and use ``ax.set_position()`` in your code + with ``constrained_layout=False``. + +Simple Example +============== + +In matplotlib, the location of axes (including subplots) are specified in +normalized figure coordinates. It can happen that your axis labels or +titles (or sometimes even ticklabels) go outside the figure area, and are thus +clipped. + +""" + +# sphinx_gallery_thumbnail_number = 18 + +#import matplotlib +#matplotlib.use('Qt5Agg') + +import warnings + +import matplotlib.pyplot as plt +import numpy as np +import matplotlib.gridspec as gridspec + +import matplotlib._layoutbox as layoutbox + +plt.rcParams['savefig.facecolor'] = "0.8" +plt.rcParams['figure.figsize'] = 4.5, 4. + + +def example_plot(ax, fontsize=12, nodec=False): + ax.plot([1, 2]) + + ax.locator_params(nbins=3) + if not nodec: + ax.set_xlabel('x-label', fontsize=fontsize) + ax.set_ylabel('y-label', fontsize=fontsize) + ax.set_title('Title', fontsize=fontsize) + else: + ax.set_xticklabels('') + ax.set_yticklabels('') + + +fig, ax = plt.subplots() +example_plot(ax, fontsize=24) + +############################################################################### +# To prevent this, the location of axes needs to be adjusted. For +# subplots, this can be done by adjusting the subplot params +# (:ref:`howto-subplots-adjust`). However, specifying your figure with the +# ``constrained_layout=True`` kwarg will do the adjusting automatically. + +fig, ax = plt.subplots(constrained_layout=True) +example_plot(ax, fontsize=24) + +############################################################################### +# When you have multiple subplots, often you see labels of different +# axes overlapping each other. + +fig, axs = plt.subplots(2, 2, constrained_layout=False) +for ax in axs.flatten(): + example_plot(ax) + +############################################################################### +# Specifying `constrained_layout=True` in the call to `plt.subplots` +# causes the layout to be properly constrained. + +fig, axs = plt.subplots(2, 2, constrained_layout=True) +for ax in axs.flatten(): + example_plot(ax) + +############################################################################### +# Colorbars +# ========= +# +# If you create a colorbar with the :func:`~matplotlib.pyplot.colorbar` +# command you need to make room for it. ``constrained_layout`` does this +# automatically. Note that if you specify ``use_gridspec=True`` it will be +# ignored because this option is made for improving the layout via +# ``tight_layout``. + +arr = np.arange(100).reshape((10, 10)) +fig, ax = plt.subplots(figsize=(4, 4), constrained_layout=True) +im = ax.pcolormesh(arr, rasterized=True) +fig.colorbar(im, ax=ax, shrink=0.6) + +############################################################################ +# If you specify multiple axes to the ``ax`` argument of ``colorbar``, +# constrained_layout will take space from all axes that share the same +# gridspec. + +fig, axs = plt.subplots(2, 2, figsize=(4, 4), constrained_layout=True) +for ax in axs.flatten(): + im = ax.pcolormesh(arr, rasterized=True) +fig.colorbar(im, ax=axs, shrink=0.6) + +#################################################### +# Suptitle +# ========= +# +# ``constrained_layout`` can also make room for ``suptitle``. + +fig, axs = plt.subplots(2, 2, figsize=(4, 4), constrained_layout=True) +for ax in axs.flatten(): + im = ax.pcolormesh(arr, rasterized=True) +fig.colorbar(im, ax=axs, shrink=0.6) +fig.suptitle('Big Suptitle') + +#################################################### +# Legends +# ======= +# +# Legends can be placed outside +# of their parent axis. Constrained-layout is designed to handle this. +# However, constrained-layout does *not* handle legends being created via +# ``fig.legend()`` (yet). + +fig, ax = plt.subplots(constrained_layout=True) +ax.plot(np.arange(10), label='This is a plot') +ax.legend(loc='center left', bbox_to_anchor=(0.9, 0.5)) + +############################################# +# 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.9, 0.5)) + +############################################################################### +# Padding and Spacing +# =================== +# +# For constrained_layout, we have implimented a padding around the edge of +# each axes. This padding sets the distance from the edge of the plot, +# and the minimum distance between adjacent plots. It is specified in +# inches by the keyword arguments `w_pad` and `h_pad` to the function +# `fig.set_constrained_layout_pads`: + +fig, axs = plt.subplots(2, 2, constrained_layout=True) +for ax in axs.flatten(): + example_plot(ax, nodec=True) + ax.set_xticklabels('') + ax.set_yticklabels('') +fig.set_constrained_layout_pads(w_pad=4./72., h_pad=4./72., + hspace=0., wspace=0.) + +fig, axs = plt.subplots(2, 2, constrained_layout=True) +for ax in axs.flatten(): + example_plot(ax, nodec=True) + ax.set_xticklabels('') + ax.set_yticklabels('') +fig.set_constrained_layout_pads(w_pad=2./72., h_pad=2./72., + hspace=0., wspace=0.) + +########################################## +# Spacing between subplots is set by `wspace` and `hspace`. There are +# specified as a fraction of the size of the subplot group as a whole. +# If the size of the figure is changed, then these spaces change in +# proportion. Note in the blow how the space at the edges doesn't change from +# the above, but the space between subplots does. + +fig, axs = plt.subplots(2, 2, constrained_layout=True) +for ax in axs.flatten(): + example_plot(ax, nodec=True) + ax.set_xticklabels('') + ax.set_yticklabels('') +fig.set_constrained_layout_pads(w_pad=2./72., h_pad=2./72., + hspace=0.2, wspace=0.2) + + +########################################## +# Spacing with colorbars +# ----------------------- +# +# Colorbars still respect the `w_pad` and `h_pad` values. However they will +# be `wspace` and `hsapce` apart from other subplots. Note the use of a `pad` +# kwarg here in the `colorbar` call. It defaults to 0.02 of the size of the +# axis it is attached to. + +fig, axs = plt.subplots(2, 2, constrained_layout=True) +for ax in axs.flatten(): + pc = ax.pcolormesh(arr, rasterized=True) + fig.colorbar(im, ax=ax, shrink=0.6, pad=0) + ax.set_xticklabels('') + ax.set_yticklabels('') +fig.set_constrained_layout_pads(w_pad=2./72., h_pad=2./72., + hspace=0.2, wspace=0.2) + +########################################## +# In the above example, the colorbar will not ever be closer than 2 pts to +# the plot, but if we want it a bit further away, we can specify its value +# for `pad` to be non-zero. + +fig, axs = plt.subplots(2, 2, constrained_layout=True) +for ax in axs.flatten(): + pc = ax.pcolormesh(arr, rasterized=True) + fig.colorbar(im, ax=ax, shrink=0.6, pad=0.05) + ax.set_xticklabels('') + ax.set_yticklabels('') +fig.set_constrained_layout_pads(w_pad=2./72., h_pad=2./72., + hspace=0.2, wspace=0.2) + +########################################## +# rcParams: +# ----------- +# +# There are four `rcParams` that can be set, either in a script +# or in the `matplotlibrc` file. They all have the prefix +# `figure.constrained_layout`: +# +# - `do`: Whether to do constrained_layout. Default is False +# - `w_pad`, `h_pad` Padding around axes objects. +# Float representing inches. Default is 3./72. inches (3 pts) +# - `wspace`, `hspace` Space between subplot groups. +# Float representing a fraction of the suplot widths being separated. +# Default is 0.02. + +plt.rcParams['figure.constrained_layout.use'] = True +fig, axs = plt.subplots(2, 2, figsize=(3, 3)) +for ax in axs.flatten(): + example_plot(ax) + +############################# +# Use with GridSpec +# ================= +# +# constrained_layout is meant to be used +# with :func:`~matplotlib.figure.Figure.subplots` or +# :func:`~matplotlib.gridspec.GridSpec` and +# :func:`~matplotlib.figure.Figure.add_subplot`. + +fig = plt.figure(constrained_layout=True) + +gs1 = gridspec.GridSpec(2, 1, figure=fig) +ax1 = fig.add_subplot(gs1[0]) +ax2 = fig.add_subplot(gs1[1]) + +example_plot(ax1) +example_plot(ax2) + +############################################################################### +# More complicated gridspec layouts are possible... + +fig = plt.figure(constrained_layout=True) + +gs0 = gridspec.GridSpec(1, 2, figure=fig) + +gs1 = gridspec.GridSpecFromSubplotSpec(2, 1, gs0[0]) +ax1 = fig.add_subplot(gs1[0]) +ax2 = fig.add_subplot(gs1[1]) + +example_plot(ax1) +example_plot(ax2) + +gs2 = gridspec.GridSpecFromSubplotSpec(3, 1, gs0[1]) + +for ss in gs2: + ax = fig.add_subplot(ss) + example_plot(ax) + ax.set_title("") + ax.set_xlabel("") + +ax.set_xlabel("x-label", fontsize=12) + +############################################################################ +# Note that in the above the left and columns don't have the same vertical +# extent. If we want the top and bottom of the two grids to line up then +# they need to be in the same gridspec: + +fig = plt.figure(constrained_layout=True) + +gs0 = gridspec.GridSpec(6, 2, figure=fig) + +ax1 = fig.add_subplot(gs0[:3, 0]) +ax2 = fig.add_subplot(gs0[3:, 0]) + +example_plot(ax1) +example_plot(ax2) + +ax = fig.add_subplot(gs0[0:2, 1]) +example_plot(ax) +ax = fig.add_subplot(gs0[2:4, 1]) +example_plot(ax) +ax = fig.add_subplot(gs0[4:, 1]) +example_plot(ax) + +############################################################################ +# This example uses two gridspecs to have the colorbar only pertain to +# one set of pcolors. Note how the left column is wider than the +# two right-hand columns because of this. Of course, if you wanted the +# subplots to be the same size you only needed one gridspec. + + +def docomplicated(suptitle=None): + fig = plt.figure(constrained_layout=True) + gs0 = gridspec.GridSpec(1, 2, figure=fig, width_ratios=[1., 2.]) + gsl = gridspec.GridSpecFromSubplotSpec(2, 1, gs0[0]) + gsr = gridspec.GridSpecFromSubplotSpec(2, 2, gs0[1]) + + for gs in gsl: + ax = fig.add_subplot(gs) + example_plot(ax) + axs = [] + for gs in gsr: + ax = fig.add_subplot(gs) + pcm = ax.pcolormesh(arr, rasterized=True) + ax.set_xlabel('x-label') + ax.set_ylabel('y-label') + ax.set_title('title') + + axs += [ax] + fig.colorbar(pcm, ax=axs) + if suptitle is not None: + fig.suptitle(suptitle) + +docomplicated() + +############################################################################### +# Manually setting axes positions +# ================================ +# +# There can be good reasons to manually set an axes position. A manual call +# to `ax.set_position()` will set the axes so constrained_layout has no +# effect on it anymore. (Note that constrained_layout still leaves the space +# for the axes that is moved). + +fig, axs = plt.subplots(1, 2, constrained_layout=True) +example_plot(axs[0], fontsize=12) +axs[1].set_position([0.2, 0.2, 0.4, 0.4]) + +############################################################################### +# If you want an inset axes in data-space, you need to manually execute the +# layout using `fig.execute_constrained_layout()` call. The inset figure +# will then be properly positioned. However, it will not be properly +# positioned if the size of the figure is subsequently changed. Similarly, +# if the figure is printed to another backend, there may be slight changes +# of location due to small differences in how the backends render fonts. + +from matplotlib.transforms import Bbox + +fig, axs = plt.subplots(1, 2, constrained_layout=True) +example_plot(axs[0], fontsize=12) +fig.execute_constrained_layout() +# put into data-space: +bb_data_ax2 = Bbox.from_bounds(0.5, 1., 0.2, 0.4) +disp_coords = axs[0].transData.transform(bb_data_ax2) +fig_coords_ax2 = fig.transFigure.inverted().transform(disp_coords) +bb_ax2 = Bbox(fig_coords_ax2) +ax2 = fig.add_axes(bb_ax2) + +############################################################################### +# Limitations +# ======================== +# +# Incompatible functions +# ---------------------- +# +# ``constrained_layout`` will not work on subplots +# created via the `subplot` command. The reason is that each of these +# commands creates a separate `GridSpec` instance and `constrained_layout` +# uses (nested) gridspecs to carry out the layout. So the following fails +# to yield a nice layout: + + +fig = plt.figure(constrained_layout=True) + +ax1 = plt.subplot(221) +ax2 = plt.subplot(223) +ax3 = plt.subplot(122) + +example_plot(ax1) +example_plot(ax2) +example_plot(ax3) + +############################################################################### +# Of course that layout is possible using a gridspec: + +fig = plt.figure(constrained_layout=True) +gs = gridspec.GridSpec(2, 2, figure=fig) + +ax1 = fig.add_subplot(gs[0, 0]) +ax2 = fig.add_subplot(gs[1, 0]) +ax3 = fig.add_subplot(gs[:, 1]) + +example_plot(ax1) +example_plot(ax2) +example_plot(ax3) + +############################################################################### +# Similarly, +# :func:`~matplotlib.pyplot.subplot2grid` doesn't work for the same reason: +# each call creates a different parent gridspec. + +fig = plt.figure(constrained_layout=True) + +ax1 = plt.subplot2grid((3, 3), (0, 0)) +ax2 = plt.subplot2grid((3, 3), (0, 1), colspan=2) +ax3 = plt.subplot2grid((3, 3), (1, 0), colspan=2, rowspan=2) +ax4 = plt.subplot2grid((3, 3), (1, 2), rowspan=2) + +example_plot(ax1) +example_plot(ax2) +example_plot(ax3) +example_plot(ax4) + +############################################################################### +# The way to make this plot compatible with ``constrained_layout`` is again +# to use ``gridspec`` directly + +fig = plt.figure(constrained_layout=True) +gs = gridspec.GridSpec(3, 3, figure=fig) + +ax1 = fig.add_subplot(gs[0, 0]) +ax2 = fig.add_subplot(gs[0, 1:]) +ax3 = fig.add_subplot(gs[1:, 0:2]) +ax4 = fig.add_subplot(gs[1:, -1]) + +example_plot(ax1) +example_plot(ax2) +example_plot(ax3) +example_plot(ax4) + +############################################################################### +# Other Caveats +# ------------- +# +# * ``constrained_layout`` only considers ticklabels, +# axis labels, titles, and legends. Thus, other artists may be clipped +# and also may overlap. +# +# * It assumes that the extra space needed for ticklabels, axis labels, +# and titles is independent of original location of axes. This is +# often true, but there are rare cases where it is not. +# +# * There are small differences in how the backends handle rendering fonts, +# so the results will not be pixel-identical. + +########################################################### +# Debugging +# ========= +# +# Constrained-layout can fail in somewhat unexpected ways. Because it uses +# a constraint solver the solver can find solutions that are mathematically +# correct, but that aren't at all what the user wants. The usual failure +# mode is for all sizes to collapse to their smallest allowable value. If +# this happens, it is for one of two reasons: +# +# 1. There was not enough room for the elements you were requesting to draw +# 2. There is a bug - in which case open an issue at +# https://github.com/matplotlib/matplotlib/issues. +# +# If there is a bug, please report with a self-contained example that does +# not require outside data or dependencies (other than perhaps numpy). + +########################################################### +# Notes on the algorithm +# ====================== +# +# The algorithm for the constraint is relatively straightforward, but +# has some complexity due to the complex ways we can layout a figure. +# +# Figure layout +# ------------- +# +# Figures are laid out in a hierarchy: +# +# 1. Figure: `fig = plt.figure()` +# +# a. Gridspec `gs0 = gridspec.GridSpec(1, 2, figure=fig)` +# +# i. Subplotspec: `ss = gs[0, 0]` +# +# 1. Axes: `ax0 = fig.add_subplot(ss)` +# +# ii. Subplotspec: `ss = gs[0, 1]` +# +# 1. Gridspec: `gsR = gridspec.GridSpecFromSubplotSpec(2, 1, ss)` +# +# - Subplotspec: ss = gsR[0, 0] +# +# - Axes: `axR0 = fig.add_subplot(ss)` +# +# - Subplotspec: ss = gsR[1, 0] +# +# - Axes: `axR1 = fig.add_subplot(ss)` +# +# Each item has a layoutbox associated with it. The nesting of gridspecs +# created with `~.GridSpecFromSubplotSpec` can be arbitrarily deep. +# +# Each `~.Axes` has *two* layoutboxes. The first one ``ax._layoutbox`` +# represents the outside of the Axes and all its decorations (i.e. ticklabels, +# axis labels, etc.). The second layoutbox corresponds to the Axes' +# `ax.position`, which sets where in the figure the spines are placed. +# +# Why so many stacked containers? Ideally, all that would be needed are the +# Axes layotu boxes. For the Gridspec case, a container is +# needed if the Gridspec is nested via `~.GridSpecFromSubplotSpec`. At the +# top level, it is desirable for symmetry, but it also makes room for +# `~.Figure.suptitle`. +# +# For the Subplotspec/Axes case, Axes often have colorbars or other +# annotations that need to be packaged inside the Subplotspec, hence the +# need for the outer layer. +# +# +# Simple case: one Axes +# --------------------- +# +# For a single Axes the layout is straight forward. The Figure and +# outer Gridspec layoutboxes co-incide. The Subplotspec and Axes +# boxes also co-incide because the Axes has no colorbar. Note +# the difference between the red ``pos`` box and the green ``ax`` box +# is set by the size of the decorations around the Axes. +# +# In the code, this is accomplished by the entries in `~.do_constrained_layout` +# like:: +# +# ax._poslayoutbox.edit_left_margin_min(-bbox.x0 + pos.x0 + w_padt) +# + +from matplotlib._layoutbox import plot_children + +fig, ax = plt.subplots(constrained_layout=True) +example_plot(ax, fontsize=24) +plot_children(fig, fig._layoutbox, printit=False) + +####################################################################### +# Simple case: two Axes +# --------------------- +# For this case, the Axes layoutboxes and the Subplotspec boxes still +# co-incide. However, because the decorations in the right-hand plot are so +# much smaller than the left-hand, so the right-hand layoutboxes are smaller. +# +# The Subplotspec boxes are laid out in the code in the subroutine +# `~.arange_subplotspecs`, which simply checks the subplotspecs in the code +# against one another and stacks them appropriately. +# +# The two ``pos`` axes are lined up. Because they have the same +# minimum row, they are lined up at the top. Because +# they have the same maximum row they are lined up at the bottom. In the +# code this is accomplished via the calls to ``layoutbox.align``. If +# there was more than one row, then the same horizontal alignment would +# occur between the rows. +# +# The two ``pos`` axes are given the same width because the subplotspecs +# occupy the same number of columns. This is accomplished in the code where +# ``dcols0`` is compared to ``dcolsC``. If they are equal, then their widths +# are constrained to be equal. +# +# While it is a bit subtle in this case, note that the division between the +# Subplotspecs is *not* centered, but has been moved to the right to make +# space for the larger labels on the left-hand plot. + +fig, ax = plt.subplots(1, 2, constrained_layout=True) +example_plot(ax[0], fontsize=32) +example_plot(ax[1], fontsize=8) +plot_children(fig, fig._layoutbox, printit=False) + +####################################################################### +# Two Axes and colorbar +# --------------------- +# +# Adding a colorbar makes it clear why the Subplotspec layoutboxes must +# be different from the axes layoutboxes. Here we see the left-hand +# subplotspec has more room to accomodate the `~.Figure.colorbar`, and +# that there are two green ``ax`` boxes inside the ``ss`` box. +# +# Note that the width of the ``pos`` boxes is still the same because of the +# constraint on their widths because their subplotspecs occupy the same +# number of columns (one in this example). +# +# The colorbar layout logic is contained in `~.colorbar.make_axes` which +# call `._constrained_layout.layoutcolorbarsingle` for cbars attached to +# a single axes, and `._constrained_layout.layoutcolorbargridspec` if the +# colorbar is associated wiht a gridspec. + +fig, ax = plt.subplots(1, 2, constrained_layout=True) +im = ax[0].pcolormesh(arr, rasterized=True) +fig.colorbar(im, ax=ax[0], shrink=0.6) +im = ax[1].pcolormesh(arr, rasterized=True) +plot_children(fig, fig._layoutbox, printit=False) + +####################################################################### +# Colorbar associated with a Gridspec +# ----------------------------------- +# +# This example shows the Subplotspec layoutboxes being made smaller by +# a colorbar layoutbox. The size of the colorbar layoutbox is +# set to be *shrink* smaller than the vertical extent of the ``pos`` +# layoutboxes in the gridspec, and it is made to be centered between +# those two points. + +fig, ax = plt.subplots(2, 2, constrained_layout=True) +for a in ax.flatten(): + im = a.pcolormesh(arr, rasterized=True) +fig.colorbar(im, ax=ax, shrink=0.6) +plot_children(fig, fig._layoutbox, printit=False) + +####################################################################### +# Uneven sized Axes +# ----------------- +# +# There are two ways to make axes have an uneven size in a +# Gridspec layout, either by specifying them to cross Gridspecs rows +# or columns, or by specifying width and height ratios. +# +# The first method is used here. The constraint that makes the heights +# be correct is in the code where ``drowsC < drows0`` which in +# this case would be 1 is less than 2. So we constrain the +# the height of the 1-row Axes to be less than half the height of the +# 2-row Axes. +# +# ..note:: +# +# This algorithm can be wrong if the decorations attached +# to the smaller axes are very large, so there is an unaccounted-for +# edge case. + + +fig = plt.figure(constrained_layout=True) +gs = gridspec.GridSpec(2, 2, figure=fig) +ax = fig.add_subplot(gs[:, 0]) +im = ax.pcolormesh(arr, rasterized=True) +ax = fig.add_subplot(gs[0, 1]) +im = ax.pcolormesh(arr, rasterized=True) +ax = fig.add_subplot(gs[1, 1]) +im = ax.pcolormesh(arr, rasterized=True) +plot_children(fig, fig._layoutbox, printit=False) + +####################################################################### +# Height and width ratios are accomodated with the same part of +# the code with the smaller axes always constrained to be less in size +# than the larger. + +fig = plt.figure(constrained_layout=True) +gs = gridspec.GridSpec(3, 2, figure=fig, + height_ratios=[1., 0.5, 1.5], + width_ratios=[1.2, 0.8]) +ax = fig.add_subplot(gs[:2, 0]) +im = ax.pcolormesh(arr, rasterized=True) +ax = fig.add_subplot(gs[2, 0]) +im = ax.pcolormesh(arr, rasterized=True) +ax = fig.add_subplot(gs[0, 1]) +im = ax.pcolormesh(arr, rasterized=True) +ax = fig.add_subplot(gs[1:, 1]) +im = ax.pcolormesh(arr, rasterized=True) +plot_children(fig, fig._layoutbox, printit=False) + +######################################################################## +# Empty gridspec slots +# -------------------- +# +# The final piece of the code that has not been explained is what happens if +# there is an empty gridspec opening. In that case a fake invisible axes is +# added and we proceed as before. The empty gridspec has no decorations, but +# the axes postion in made the same size as the occupied Axes positions. +# +# This is done at the start of +# `~._constrained_layout.do_constrained_layout` (``hassubplotspec``). + +fig = plt.figure(constrained_layout=True) +gs = gridspec.GridSpec(1, 3, figure=fig) +ax = fig.add_subplot(gs[0]) +im = ax.pcolormesh(arr, rasterized=True) +ax = fig.add_subplot(gs[-1]) +im = ax.pcolormesh(arr, rasterized=True) +plot_children(fig, fig._layoutbox, printit=False) +plt.show() + +######################################################################## +# Other notes +# ----------- +# +# The layout is called only once. This is OK if the original layout was +# pretty close (which it should be in most cases). However, if the layout +# changes a lot from the default layout then the decorators can change size. +# In particular the x and ytick labels can change. If this happens, then +# we should probably call the whole routine twice. diff --git a/tutorials/intermediate/tight_layout_guide.py b/tutorials/intermediate/tight_layout_guide.py index b3cbb0861113..6318032e6412 100644 --- a/tutorials/intermediate/tight_layout_guide.py +++ b/tutorials/intermediate/tight_layout_guide.py @@ -21,6 +21,8 @@ """ +# sphinx_gallery_thumbnail_number = 7 + import matplotlib.pyplot as plt import numpy as np