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

Skip to content

Commit 3e76904

Browse files
Extra ticks cache guard for get_tightbbox
1 parent 2ed48b9 commit 3e76904

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
@@ -1281,6 +1281,10 @@ def _set_artist_props(self, a):
12811281
return
12821282
a.set_figure(self.get_figure(root=False))
12831283

1284+
def _clear_ticks_cache(self):
1285+
self._cached_ticks_to_draw = None
1286+
self._cached_ticklabel_bboxes = None
1287+
12841288
def _update_ticks(self, *, _use_cache=False):
12851289
"""
12861290
Update ticks (position and labels) using the current data interval of
@@ -1375,6 +1379,7 @@ def get_tightbbox(self, renderer=None, *, for_layout_only=False):
13751379
# Don't use cached values here - get_tightbbox() is called during
13761380
# layout calculations (e.g., constrained_layout) outside of draw(),
13771381
# and must always recalculate to reflect current state.
1382+
self._clear_ticks_cache()
13781383
ticks_to_draw = self._update_ticks(_use_cache=False)
13791384

13801385
self._update_label_position(renderer, _use_cache=False)
@@ -1447,8 +1452,7 @@ def draw(self, renderer):
14471452
self.stale = False
14481453

14491454
# Reset cached values for next draw cycle, in case not called by Axes.draw()
1450-
self._cached_ticks_to_draw = None
1451-
self._cached_ticklabel_bboxes = None
1455+
self._clear_ticks_cache()
14521456

14531457
def get_gridlines(self):
14541458
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
@@ -451,8 +451,7 @@ def draw(self, renderer):
451451

452452
if self._axis3don:
453453
for axis in self._axis_map.values():
454-
axis._cached_ticks_to_draw = None
455-
axis._cached_ticklabel_bboxes = None
454+
axis._clear_ticks_cache()
456455
# Draw panes first
457456
for axis in self._axis_map.values():
458457
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)