Skip to content

Commit 332ac0a

Browse files
committed
Merge pull request matplotlib#1420 from jenshnielsen/bbox_extra_artist
Join bbox_extra_artists and bbox_inches
2 parents 9f2cb13 + 6d585f3 commit 332ac0a

File tree

8 files changed

+1738
-4
lines changed

8 files changed

+1738
-4
lines changed

lib/matplotlib/__init__.py

+1
Original file line numberDiff line numberDiff line change
@@ -1071,6 +1071,7 @@ def tk_window_focus():
10711071
'matplotlib.tests.test_backend_svg',
10721072
'matplotlib.tests.test_backend_pgf',
10731073
'matplotlib.tests.test_basic',
1074+
'matplotlib.tests.test_bbox_tight',
10741075
'matplotlib.tests.test_cbook',
10751076
'matplotlib.tests.test_colorbar',
10761077
'matplotlib.tests.test_colors',

lib/matplotlib/axes.py

+3
Original file line numberDiff line numberDiff line change
@@ -8807,6 +8807,9 @@ def get_default_bbox_extra_artists(self):
88078807
bbox_extra_artists = [t for t in self.texts if t.get_visible()]
88088808
if self.legend_:
88098809
bbox_extra_artists.append(self.legend_)
8810+
if self.tables:
8811+
for t in self.tables:
8812+
bbox_extra_artists.append(t)
88108813
return bbox_extra_artists
88118814

88128815

lib/matplotlib/backend_bases.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -2091,7 +2091,8 @@ def print_figure(self, filename, dpi=None, facecolor='w', edgecolor='w',
20912091
if bbox_filtered:
20922092
_bbox = Bbox.union(bbox_filtered)
20932093
trans = Affine2D().scale(1.0 / self.figure.dpi)
2094-
bbox_inches = TransformedBbox(_bbox, trans)
2094+
bbox_extra = TransformedBbox(_bbox, trans)
2095+
bbox_inches = Bbox.union([bbox_inches, bbox_extra])
20952096

20962097
pad = kwargs.pop("pad_inches", None)
20972098
if pad is None:

lib/matplotlib/testing/decorators.py

+13-3
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ def do_test():
142142
if self._remove_text:
143143
self.remove_text(figure)
144144

145-
figure.savefig(actual_fname)
145+
figure.savefig(actual_fname, **self._savefig_kwarg)
146146

147147
err = compare_images(expected_fname, actual_fname,
148148
self._tol, in_decorator=True)
@@ -166,7 +166,8 @@ def do_test():
166166
yield (do_test,)
167167

168168
def image_comparison(baseline_images=None, extensions=None, tol=1e-3,
169-
freetype_version=None, remove_text=False):
169+
freetype_version=None, remove_text=False,
170+
savefig_kwarg=None):
170171
"""
171172
call signature::
172173
@@ -199,6 +200,10 @@ def image_comparison(baseline_images=None, extensions=None, tol=1e-3,
199200
Remove the title and tick text from the figure before
200201
comparison. This does not remove other, more deliberate,
201202
text, such as legends and annotations.
203+
204+
*savefig_kwarg*: dict
205+
Optional arguments that are passed to the savefig method.
206+
202207
"""
203208

204209
if baseline_images is None:
@@ -208,6 +213,10 @@ def image_comparison(baseline_images=None, extensions=None, tol=1e-3,
208213
# default extensions to test
209214
extensions = ['png', 'pdf', 'svg']
210215

216+
if savefig_kwarg is None:
217+
#default no kwargs to savefig
218+
savefig_kwarg = dict()
219+
211220
def compare_images_decorator(func):
212221
# We want to run the setup function (the actual test function
213222
# that generates the figure objects) only once for each type
@@ -231,7 +240,8 @@ def compare_images_decorator(func):
231240
'_extensions': extensions,
232241
'_tol': tol,
233242
'_freetype_version': freetype_version,
234-
'_remove_text': remove_text})
243+
'_remove_text': remove_text,
244+
'_savefig_kwarg': savefig_kwarg})
235245

236246
return new_class
237247
return compare_images_decorator
Binary file not shown.
Loading

0 commit comments

Comments
 (0)