Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 7370321

Browse files
Same get_tightbbox cache logic for axes3d
1 parent d8edeb7 commit 7370321

1 file changed

Lines changed: 9 additions & 6 deletions

File tree

lib/mpl_toolkits/mplot3d/axis3d.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -628,9 +628,8 @@ def draw(self, renderer):
628628
self._draw_labels(renderer, edgep1, edgep2, labeldeltas, centers, dx, dy)
629629

630630
renderer.close_group('axis3d')
631-
self.stale = False
632-
633631
self._clear_ticks_cache()
632+
self.stale = False
634633

635634
@artist.allow_rasterization
636635
def draw_grid(self, renderer):
@@ -677,6 +676,12 @@ def get_tightbbox(self, renderer=None, *, for_layout_only=False):
677676
# docstring inherited
678677
if not self.get_visible():
679678
return
679+
680+
# We need to reset the ticks cache here - get_tightbbox() is called
681+
# during layout calculations (e.g., constrained_layout) outside of
682+
# draw(), and must always recalculate to reflect current state.
683+
self._clear_ticks_cache()
684+
680685
# We have to directly access the internal data structures
681686
# (and hope they are up to date) because at draw time we
682687
# shift the ticks and their labels around in (x, y) space
@@ -708,10 +713,7 @@ def get_tightbbox(self, renderer=None, *, for_layout_only=False):
708713

709714
ticks = ticks_to_draw
710715

711-
# Don't use cached values here - get_tightbbox() is called during
712-
# layout calculations (e.g., constrained_layout) outside of draw(),
713-
# and must always recalculate to reflect current state.
714-
bb_1, bb_2 = self._get_ticklabel_bboxes(ticks, renderer, _use_cache=False)
716+
bb_1, bb_2 = self._get_ticklabel_bboxes(ticks, renderer, _use_cache=True)
715717
other = []
716718

717719
if self.offsetText.get_visible() and self.offsetText.get_text():
@@ -722,6 +724,7 @@ def get_tightbbox(self, renderer=None, *, for_layout_only=False):
722724
self.label.get_text()):
723725
other.append(self.label.get_window_extent(renderer))
724726

727+
self._clear_ticks_cache()
725728
return mtransforms.Bbox.union([*bb_1, *bb_2, *other])
726729

727730
d_interval = _api.deprecated(

0 commit comments

Comments
 (0)