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

Skip to content

Commit 873ae23

Browse files
committed
FIX: use cached renderer on Legend.get_window_extent
Closes #11970
1 parent fb0035f commit 873ae23

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

lib/matplotlib/legend.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -976,9 +976,11 @@ def get_title(self):
976976
'Return the `.Text` instance for the legend title.'
977977
return self._legend_title_box._text
978978

979-
def get_window_extent(self, *args, **kwargs):
979+
def get_window_extent(self, renderer=None):
980980
'Return extent of the legend.'
981-
return self._legend_box.get_window_extent(*args, **kwargs)
981+
if renderer is None:
982+
renderer = self.figure._cachedRenderer
983+
return self._legend_box.get_window_extent(renderer=renderer)
982984

983985
def get_tightbbox(self, renderer):
984986
"""

lib/matplotlib/tests/test_legend.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -510,6 +510,17 @@ def test_legend_proper_window_extent():
510510
assert pytest.approx(x01*2, 0.1) == x02
511511

512512

513+
def test_window_extent_cached_renderer():
514+
fig, ax = plt.subplots(dpi=100)
515+
ax.plot(range(10), label='Aardvark')
516+
leg = ax.legend()
517+
leg2 = fig.legend()
518+
fig.canvas.draw()
519+
# check that get_window_extent will use the cached renderer
520+
leg.get_window_extent()
521+
leg2.get_window_extent()
522+
523+
513524
def test_legend_title_fontsize():
514525
# test the title_fontsize kwarg
515526
fig, ax = plt.subplots()

0 commit comments

Comments
 (0)