@@ -880,7 +880,7 @@ def _translate_tick_kw(kw):
880
880
raise ValueError (
881
881
"keyword %s is not recognized; valid keywords are %s"
882
882
% (key , kwkeys ))
883
- kwtrans .update (kw )
883
+ kwtrans .update (kw )
884
884
return kwtrans
885
885
886
886
def set_clip_path (self , clippath , transform = None ):
@@ -1317,6 +1317,18 @@ def _get_tick(self, major):
1317
1317
"""Return the default tick instance."""
1318
1318
raise NotImplementedError ('derived must override' )
1319
1319
1320
+ def _get_tick_label_size (self , axis_name ):
1321
+ """
1322
+ Return the text size of tick labels for this Axis.
1323
+
1324
+ This is a convenience function to avoid having to create a `Tick` in
1325
+ `.get_tick_space`, since it is expensive.
1326
+ """
1327
+ tick_kw = self ._major_tick_kw
1328
+ size = tick_kw .get ('labelsize' ,
1329
+ mpl .rcParams [f'{ axis_name } tick.labelsize' ])
1330
+ return mtext .FontProperties (size ).get_size_in_points ()
1331
+
1320
1332
def _copy_tick_props (self , src , dest ):
1321
1333
"""Copy the properties from *src* tick to *dest* tick."""
1322
1334
if src is None or dest is None :
@@ -2214,10 +2226,9 @@ def set_default_intervals(self):
2214
2226
def get_tick_space (self ):
2215
2227
ends = self .axes .transAxes .transform ([[0 , 0 ], [1 , 0 ]])
2216
2228
length = ((ends [1 ][0 ] - ends [0 ][0 ]) / self .axes .figure .dpi ) * 72
2217
- tick = self ._get_tick (True )
2218
2229
# There is a heuristic here that the aspect ratio of tick text
2219
2230
# is no more than 3:1
2220
- size = tick . label1 . get_size ( ) * 3
2231
+ size = self . _get_tick_label_size ( 'x' ) * 3
2221
2232
if size > 0 :
2222
2233
return int (np .floor (length / size ))
2223
2234
else :
@@ -2500,9 +2511,8 @@ def set_default_intervals(self):
2500
2511
def get_tick_space (self ):
2501
2512
ends = self .axes .transAxes .transform ([[0 , 0 ], [0 , 1 ]])
2502
2513
length = ((ends [1 ][1 ] - ends [0 ][1 ]) / self .axes .figure .dpi ) * 72
2503
- tick = self ._get_tick (True )
2504
2514
# Having a spacing of at least 2 just looks good.
2505
- size = tick . label1 . get_size ( ) * 2.0
2515
+ size = self . _get_tick_label_size ( 'y' ) * 2
2506
2516
if size > 0 :
2507
2517
return int (np .floor (length / size ))
2508
2518
else :
0 commit comments