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

Skip to content

Commit 9b15a52

Browse files
authored
Merge pull request #10910 from jklymak/fix-proper-legend-window-extent
FIX: return proper legend window extent
2 parents d213621 + 9a03a2d commit 9b15a52

2 files changed

Lines changed: 15 additions & 1 deletion

File tree

lib/matplotlib/legend.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -952,7 +952,7 @@ def get_title(self):
952952

953953
def get_window_extent(self, *args, **kwargs):
954954
'Return extent of the legend.'
955-
return self.legendPatch.get_window_extent(*args, **kwargs)
955+
return self._legend_box.get_window_extent(*args, **kwargs)
956956

957957
def get_frame_on(self):
958958
"""Get whether the legend box patch is drawn."""

lib/matplotlib/tests/test_legend.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -488,3 +488,17 @@ def test_legend_title_empty():
488488
leg = ax.legend()
489489
assert leg.get_title().get_text() == ""
490490
assert leg.get_title().get_visible() is False
491+
492+
493+
def test_legend_proper_window_extent():
494+
# test that legend returns the expected extent under various dpi...
495+
fig, ax = plt.subplots(dpi=100)
496+
ax.plot(range(10), label='Aardvark')
497+
leg = ax.legend()
498+
x01 = leg.get_window_extent(fig.canvas.get_renderer()).x0
499+
500+
fig, ax = plt.subplots(dpi=200)
501+
ax.plot(range(10), label='Aardvark')
502+
leg = ax.legend()
503+
x02 = leg.get_window_extent(fig.canvas.get_renderer()).x0
504+
assert pytest.approx(x01*2, 0.1) == x02

0 commit comments

Comments
 (0)