@@ -1388,17 +1388,18 @@ def get_tightbbox(self, renderer=None, *, for_layout_only=False):
13881388 return
13891389 if renderer is None :
13901390 renderer = self .get_figure (root = True )._get_renderer ()
1391- # Don't use cached values here - get_tightbbox() is called during
1392- # layout calculations (e.g., constrained_layout) outside of draw(),
1393- # and must always recalculate to reflect current state.
1391+ # We need to reset the ticks cache here - get_tightbbox() is called
1392+ # during layout calculations (e.g., constrained_layout) outside of
1393+ # draw(), and must always recalculate to reflect current state.
13941394 self ._clear_ticks_cache ()
1395- ticks_to_draw = self ._update_ticks (_use_cache = False )
13961395
1397- self ._update_label_position (renderer , _use_cache = False )
1396+ ticks_to_draw = self ._update_ticks (_use_cache = True )
1397+
1398+ self ._update_label_position (renderer , _use_cache = True )
13981399
13991400 # go back to just this axis's tick labels
14001401 tlb1 , tlb2 = self ._get_ticklabel_bboxes (ticks_to_draw , renderer ,
1401- _use_cache = False )
1402+ _use_cache = True )
14021403
14031404 self ._update_offset_text_position (tlb1 , tlb2 )
14041405 self .offsetText .set_text (self .major .formatter .get_offset ())
@@ -1424,6 +1425,8 @@ def get_tightbbox(self, renderer=None, *, for_layout_only=False):
14241425 bb .y1 = bb .y0 + 1.0
14251426 bboxes .append (bb )
14261427 bboxes = [b for b in bboxes if b ._is_finite ()]
1428+ self ._clear_ticks_cache ()
1429+
14271430 if bboxes :
14281431 return mtransforms .Bbox .union (bboxes )
14291432 else :
@@ -1445,6 +1448,8 @@ def draw(self, renderer):
14451448 return
14461449 renderer .open_group (__name__ , gid = self .get_gid ())
14471450
1451+ self ._clear_ticks_cache ()
1452+
14481453 ticks_to_draw = self ._update_ticks (_use_cache = True )
14491454 tlb1 , tlb2 = self ._get_ticklabel_bboxes (ticks_to_draw , renderer ,
14501455 _use_cache = True )
@@ -1461,10 +1466,8 @@ def draw(self, renderer):
14611466 self .offsetText .draw (renderer )
14621467
14631468 renderer .close_group (__name__ )
1464- self .stale = False
1465-
1466- # Reset cached values for next draw cycle, in case not called by Axes.draw()
14671469 self ._clear_ticks_cache ()
1470+ self .stale = False
14681471
14691472 def get_gridlines (self ):
14701473 r"""Return this Axis' grid lines as a list of `.Line2D`\s."""
0 commit comments