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

Skip to content

Commit 68845f8

Browse files
authored
Merge pull request #12064 from meeseeksmachine/auto-backport-of-pr-11971-on-v3.0.x
Backport PR #11971 on branch v3.0.x (FIX: use cached renderer on Legend.get_window_extent)
2 parents 0d4336e + 7818577 commit 68845f8

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
@@ -977,9 +977,11 @@ def get_title(self):
977977
'Return the `.Text` instance for the legend title.'
978978
return self._legend_title_box._text
979979

980-
def get_window_extent(self, *args, **kwargs):
980+
def get_window_extent(self, renderer=None):
981981
'Return extent of the legend.'
982-
return self._legend_box.get_window_extent(*args, **kwargs)
982+
if renderer is None:
983+
renderer = self.figure._cachedRenderer
984+
return self._legend_box.get_window_extent(renderer=renderer)
983985

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

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)