Skip to content

Commit 41ece96

Browse files
committed
Add a Figure._get_cachedRenderer() method
1 parent ad95791 commit 41ece96

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed

lib/matplotlib/figure.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2378,6 +2378,13 @@ def axes(self):
23782378

23792379
get_axes = axes.fget
23802380

2381+
def _get_cachedRenderer(self, error_if_none=True):
2382+
# Get the cached renderer, raising an error if it doesn't exist yet
2383+
if error_if_none and self._cachedRenderer is None:
2384+
raise AttributeError("This code can only be used after an "
2385+
"initial draw which caches the renderer.")
2386+
return self._cachedRenderer
2387+
23812388
def _get_dpi(self):
23822389
return self._dpi
23832390

@@ -2832,10 +2839,7 @@ def draw_artist(self, a):
28322839
This method can only be used after an initial draw of the figure,
28332840
because that creates and caches the renderer needed here.
28342841
"""
2835-
if self._cachedRenderer is None:
2836-
raise AttributeError("draw_artist can only be used after an "
2837-
"initial draw which caches the renderer")
2838-
a.draw(self._cachedRenderer)
2842+
a.draw(self._get_cachedRenderer())
28392843

28402844
def __getstate__(self):
28412845
state = super().__getstate__()

lib/matplotlib/legend.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -896,7 +896,7 @@ def get_title(self):
896896
def get_window_extent(self, renderer=None):
897897
# docstring inherited
898898
if renderer is None:
899-
renderer = self.figure._cachedRenderer
899+
renderer = self.figure._get_cachedRenderer()
900900
return self._legend_box.get_window_extent(renderer=renderer)
901901

902902
def get_tightbbox(self, renderer):

0 commit comments

Comments
 (0)