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

Skip to content

Commit 29e11f8

Browse files
Extra ticks cache guard for get_tightbbox
1 parent c6765aa commit 29e11f8

4 files changed

Lines changed: 9 additions & 8 deletions

File tree

lib/matplotlib/axes/_base.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3201,8 +3201,7 @@ def draw(self, renderer):
32013201

32023202
# Clear axis tick caches for this draw cycle
32033203
for _axis in self._axis_map.values():
3204-
_axis._cached_ticks_to_draw = None
3205-
_axis._cached_ticklabel_bboxes = None
3204+
_axis._clear_ticks_cache()
32063205

32073206
if not self.axison:
32083207
for _axis in self._axis_map.values():

lib/matplotlib/axis.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1293,6 +1293,10 @@ def _set_artist_props(self, a):
12931293
return
12941294
a.set_figure(self.get_figure(root=False))
12951295

1296+
def _clear_ticks_cache(self):
1297+
self._cached_ticks_to_draw = None
1298+
self._cached_ticklabel_bboxes = None
1299+
12961300
def _update_ticks(self, *, _use_cache=False):
12971301
"""
12981302
Update ticks (position and labels) using the current data interval of
@@ -1387,6 +1391,7 @@ def get_tightbbox(self, renderer=None, *, for_layout_only=False):
13871391
# Don't use cached values here - get_tightbbox() is called during
13881392
# layout calculations (e.g., constrained_layout) outside of draw(),
13891393
# and must always recalculate to reflect current state.
1394+
self._clear_ticks_cache()
13901395
ticks_to_draw = self._update_ticks(_use_cache=False)
13911396

13921397
self._update_label_position(renderer, _use_cache=False)
@@ -1459,8 +1464,7 @@ def draw(self, renderer):
14591464
self.stale = False
14601465

14611466
# Reset cached values for next draw cycle, in case not called by Axes.draw()
1462-
self._cached_ticks_to_draw = None
1463-
self._cached_ticklabel_bboxes = None
1467+
self._clear_ticks_cache()
14641468

14651469
def get_gridlines(self):
14661470
r"""Return this Axis' grid lines as a list of `.Line2D`\s."""

lib/mpl_toolkits/mplot3d/axes3d.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -452,8 +452,7 @@ def draw(self, renderer):
452452

453453
if self._axis3don:
454454
for axis in self._axis_map.values():
455-
axis._cached_ticks_to_draw = None
456-
axis._cached_ticklabel_bboxes = None
455+
axis._clear_ticks_cache()
457456
# Draw panes first
458457
for axis in self._axis_map.values():
459458
axis.draw_pane(renderer)

lib/mpl_toolkits/mplot3d/axis3d.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -630,8 +630,7 @@ def draw(self, renderer):
630630
self.stale = False
631631

632632
# Reset cached values for next draw cycle, in case not called by Axes3D.draw()
633-
self._cached_ticks_to_draw = None
634-
self._cached_ticklabel_bboxes = None
633+
self._clear_ticks_cache()
635634

636635
@artist.allow_rasterization
637636
def draw_grid(self, renderer):

0 commit comments

Comments
 (0)