@@ -1376,17 +1376,18 @@ def get_tightbbox(self, renderer=None, *, for_layout_only=False):
13761376 return
13771377 if renderer is None :
13781378 renderer = self .get_figure (root = True )._get_renderer ()
1379- # Don't use cached values here - get_tightbbox() is called during
1380- # layout calculations (e.g., constrained_layout) outside of draw(),
1381- # and must always recalculate to reflect current state.
1379+ # We need to reset the ticks cache here - get_tightbbox() is called
1380+ # during layout calculations (e.g., constrained_layout) outside of
1381+ # draw(), and must always recalculate to reflect current state.
13821382 self ._clear_ticks_cache ()
1383- ticks_to_draw = self ._update_ticks (_use_cache = False )
13841383
1385- self ._update_label_position (renderer , _use_cache = False )
1384+ ticks_to_draw = self ._update_ticks (_use_cache = True )
1385+
1386+ self ._update_label_position (renderer , _use_cache = True )
13861387
13871388 # go back to just this axis's tick labels
13881389 tlb1 , tlb2 = self ._get_ticklabel_bboxes (ticks_to_draw , renderer ,
1389- _use_cache = False )
1390+ _use_cache = True )
13901391
13911392 self ._update_offset_text_position (tlb1 , tlb2 )
13921393 self .offsetText .set_text (self .major .formatter .get_offset ())
@@ -1412,6 +1413,8 @@ def get_tightbbox(self, renderer=None, *, for_layout_only=False):
14121413 bb .y1 = bb .y0 + 1.0
14131414 bboxes .append (bb )
14141415 bboxes = [b for b in bboxes if b ._is_finite ()]
1416+ self ._clear_ticks_cache ()
1417+
14151418 if bboxes :
14161419 return mtransforms .Bbox .union (bboxes )
14171420 else :
@@ -1433,6 +1436,8 @@ def draw(self, renderer):
14331436 return
14341437 renderer .open_group (__name__ , gid = self .get_gid ())
14351438
1439+ self ._clear_ticks_cache ()
1440+
14361441 ticks_to_draw = self ._update_ticks (_use_cache = True )
14371442 tlb1 , tlb2 = self ._get_ticklabel_bboxes (ticks_to_draw , renderer ,
14381443 _use_cache = True )
@@ -1449,10 +1454,8 @@ def draw(self, renderer):
14491454 self .offsetText .draw (renderer )
14501455
14511456 renderer .close_group (__name__ )
1452- self .stale = False
1453-
1454- # Reset cached values for next draw cycle, in case not called by Axes.draw()
14551457 self ._clear_ticks_cache ()
1458+ self .stale = False
14561459
14571460 def get_gridlines (self ):
14581461 r"""Return this Axis' grid lines as a list of `.Line2D`\s."""
0 commit comments