6
6
import matplotlib
7
7
import matplotlib .tests
8
8
import matplotlib .units
9
+ from matplotlib import ticker
9
10
from matplotlib import pyplot as plt
10
11
from matplotlib import ft2font
11
12
import numpy as np
@@ -99,6 +100,16 @@ def setup_class(cls):
99
100
100
101
cls ._func ()
101
102
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
+
102
113
def test (self ):
103
114
baseline_dir , result_dir = _image_directories (self ._func )
104
115
@@ -128,6 +139,9 @@ def test(self):
128
139
will_fail , fail_msg ,
129
140
known_exception_class = ImageComparisonFailure )
130
141
def do_test ():
142
+ if self ._remove_text :
143
+ self .remove_text (figure )
144
+
131
145
figure .savefig (actual_fname )
132
146
133
147
err = compare_images (expected_fname , actual_fname ,
@@ -151,7 +165,8 @@ def do_test():
151
165
152
166
yield (do_test ,)
153
167
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 ):
155
170
"""
156
171
call signature::
157
172
@@ -179,6 +194,11 @@ def image_comparison(baseline_images=None, extensions=None, tol=1e-3, freetype_v
179
194
*freetype_version*: str or tuple
180
195
The expected freetype version or range of versions for this
181
196
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.
182
202
"""
183
203
184
204
if baseline_images is None :
@@ -210,7 +230,8 @@ def compare_images_decorator(func):
210
230
'_baseline_images' : baseline_images ,
211
231
'_extensions' : extensions ,
212
232
'_tol' : tol ,
213
- '_freetype_version' : freetype_version })
233
+ '_freetype_version' : freetype_version ,
234
+ '_remove_text' : remove_text })
214
235
215
236
return new_class
216
237
return compare_images_decorator
@@ -242,4 +263,3 @@ def _image_directories(func):
242
263
os .makedirs (result_dir )
243
264
244
265
return baseline_dir , result_dir
245
-
0 commit comments