From 16d162b39560a578903083545c086694e8b47da2 Mon Sep 17 00:00:00 2001 From: pwuertz Date: Wed, 22 Aug 2012 09:15:15 +0200 Subject: [PATCH 1/2] figure: optionally configure automatic use of tight_layout --- lib/matplotlib/figure.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/lib/matplotlib/figure.py b/lib/matplotlib/figure.py index 51716759645e..b830ddd3aa17 100644 --- a/lib/matplotlib/figure.py +++ b/lib/matplotlib/figure.py @@ -287,8 +287,11 @@ def __init__(self, *tight_layout* If *False* use *subplotpars*; if *True* adjust subplot - parameters using :meth:`tight_layout`. Defaults to - rc ``figure.autolayout``. + parameters using :meth:`tight_layout` with default padding. + When providing a dict containing the keys `pad`, `w_pad`, `h_pad` + and `rect`, the default :meth:`tight_layout` paddings will be + overridden. + Defaults to rc ``figure.autolayout``. """ Artist.__init__(self) @@ -393,12 +396,16 @@ def set_tight_layout(self, tight): Set whether :meth:`tight_layout` is used upon drawing. If None, the rcParams['figure.autolayout'] value will be set. - ACCEPTS: [True | False | None] + When providing a dict containing the keys `pad`, `w_pad`, `h_pad` + and `rect`, the default :meth:`tight_layout` paddings will be + overridden. + + ACCEPTS: [True | False | dict | None ] """ if tight is None: tight = rcParams['figure.autolayout'] - tight = bool(tight) - self._tight = tight + self._tight = bool(tight) + self._tight_parameters = tight if isinstance(tight, dict) else {} def autofmt_xdate(self, bottom=0.2, rotation=30, ha='right'): """ @@ -956,7 +963,7 @@ def draw(self, renderer): if self.get_tight_layout() and self.axes: try: - self.tight_layout(renderer) + self.tight_layout(renderer, **self._tight_parameters) except ValueError: pass # ValueError can occur when resizing a window. From 8eb05dcb2dd6b4904021bf7cc19d924e265fd44a Mon Sep 17 00:00:00 2001 From: pwuertz Date: Thu, 2 May 2013 14:21:45 +0200 Subject: [PATCH 2/2] add test for automatic use of tight layout --- .../test_tightlayout/tight_layout8.pdf | Bin 0 -> 7114 bytes .../test_tightlayout/tight_layout8.png | Bin 0 -> 23969 bytes .../test_tightlayout/tight_layout8.svg | 515 ++++++++++++++++++ lib/matplotlib/tests/test_tightlayout.py | 8 + 4 files changed, 523 insertions(+) create mode 100644 lib/matplotlib/tests/baseline_images/test_tightlayout/tight_layout8.pdf create mode 100644 lib/matplotlib/tests/baseline_images/test_tightlayout/tight_layout8.png create mode 100644 lib/matplotlib/tests/baseline_images/test_tightlayout/tight_layout8.svg diff --git a/lib/matplotlib/tests/baseline_images/test_tightlayout/tight_layout8.pdf b/lib/matplotlib/tests/baseline_images/test_tightlayout/tight_layout8.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c648289af92631345eda9ec551f52c28ba0b95bf GIT binary patch literal 7114 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 literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_tightlayout/tight_layout8.svg b/lib/matplotlib/tests/baseline_images/test_tightlayout/tight_layout8.svg new file mode 100644 index 000000000000..281a4578d270 --- /dev/null +++ b/lib/matplotlib/tests/baseline_images/test_tightlayout/tight_layout8.svg @@ -0,0 +1,515 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/matplotlib/tests/test_tightlayout.py b/lib/matplotlib/tests/test_tightlayout.py index 1433305985f7..b6e1023df836 100644 --- a/lib/matplotlib/tests/test_tightlayout.py +++ b/lib/matplotlib/tests/test_tightlayout.py @@ -135,3 +135,11 @@ def test_tight_layout7(): ax.set_title('Left Title', loc='left', fontsize=fontsize) ax.set_title('Right Title', loc='right', fontsize=fontsize) plt.tight_layout() + +@image_comparison(baseline_images=['tight_layout8']) +def test_tight_layout8(): + 'Test automatic use of tight_layout' + fig = plt.figure() + fig.set_tight_layout({'pad': .1}) + ax = fig.add_subplot(111) + example_plot(ax, fontsize=24)