Skip to content

Commit 342de60

Browse files
committed
Add a new kwarg to the image_comparison decorator, remove_text, which removes titles and ticks from a figure before comparison. Use this throughout to make more of the tests less dependent on text differences.
1 parent bf23f41 commit 342de60

File tree

120 files changed

+53790
-56118
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

120 files changed

+53790
-56118
lines changed

lib/matplotlib/testing/decorators.py

+23-3
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import matplotlib
77
import matplotlib.tests
88
import matplotlib.units
9+
from matplotlib import ticker
910
from matplotlib import pyplot as plt
1011
from matplotlib import ft2font
1112
import numpy as np
@@ -99,6 +100,16 @@ def setup_class(cls):
99100

100101
cls._func()
101102

103+
@staticmethod
104+
def remove_text(figure):
105+
figure.suptitle("")
106+
for ax in figure.get_axes():
107+
ax.set_title("")
108+
ax.xaxis.set_major_formatter(ticker.NullFormatter())
109+
ax.xaxis.set_minor_formatter(ticker.NullFormatter())
110+
ax.yaxis.set_major_formatter(ticker.NullFormatter())
111+
ax.yaxis.set_minor_formatter(ticker.NullFormatter())
112+
102113
def test(self):
103114
baseline_dir, result_dir = _image_directories(self._func)
104115

@@ -128,6 +139,9 @@ def test(self):
128139
will_fail, fail_msg,
129140
known_exception_class=ImageComparisonFailure)
130141
def do_test():
142+
if self._remove_text:
143+
self.remove_text(figure)
144+
131145
figure.savefig(actual_fname)
132146

133147
err = compare_images(expected_fname, actual_fname,
@@ -151,7 +165,8 @@ def do_test():
151165

152166
yield (do_test,)
153167

154-
def image_comparison(baseline_images=None, extensions=None, tol=1e-3, freetype_version=None):
168+
def image_comparison(baseline_images=None, extensions=None, tol=1e-3,
169+
freetype_version=None, remove_text=False):
155170
"""
156171
call signature::
157172
@@ -179,6 +194,11 @@ def image_comparison(baseline_images=None, extensions=None, tol=1e-3, freetype_v
179194
*freetype_version*: str or tuple
180195
The expected freetype version or range of versions for this
181196
test to pass.
197+
198+
*remove_text*: bool
199+
Remove the title and tick text from the figure before
200+
comparison. This does not remove other, more deliberate,
201+
text, such as legends and annotations.
182202
"""
183203

184204
if baseline_images is None:
@@ -210,7 +230,8 @@ def compare_images_decorator(func):
210230
'_baseline_images': baseline_images,
211231
'_extensions': extensions,
212232
'_tol': tol,
213-
'_freetype_version': freetype_version})
233+
'_freetype_version': freetype_version,
234+
'_remove_text': remove_text})
214235

215236
return new_class
216237
return compare_images_decorator
@@ -242,4 +263,3 @@ def _image_directories(func):
242263
os.makedirs(result_dir)
243264

244265
return baseline_dir, result_dir
245-
Binary file not shown.

0 commit comments

Comments
 (0)