From 873ae235c3afb4f4a02e2a5f0f62fa17a4b916f5 Mon Sep 17 00:00:00 2001 From: Thomas A Caswell Date: Tue, 28 Aug 2018 23:47:27 -0400 Subject: [PATCH] FIX: use cached renderer on Legend.get_window_extent Closes #11970 --- lib/matplotlib/legend.py | 6 ++++-- lib/matplotlib/tests/test_legend.py | 11 +++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/lib/matplotlib/legend.py b/lib/matplotlib/legend.py index a8c3781a70f2..6fe76fabd8e6 100644 --- a/lib/matplotlib/legend.py +++ b/lib/matplotlib/legend.py @@ -976,9 +976,11 @@ def get_title(self): 'Return the `.Text` instance for the legend title.' return self._legend_title_box._text - def get_window_extent(self, *args, **kwargs): + def get_window_extent(self, renderer=None): 'Return extent of the legend.' - return self._legend_box.get_window_extent(*args, **kwargs) + if renderer is None: + renderer = self.figure._cachedRenderer + return self._legend_box.get_window_extent(renderer=renderer) def get_tightbbox(self, renderer): """ diff --git a/lib/matplotlib/tests/test_legend.py b/lib/matplotlib/tests/test_legend.py index 4f92f044fd6b..d508d6f41fc2 100644 --- a/lib/matplotlib/tests/test_legend.py +++ b/lib/matplotlib/tests/test_legend.py @@ -510,6 +510,17 @@ def test_legend_proper_window_extent(): assert pytest.approx(x01*2, 0.1) == x02 +def test_window_extent_cached_renderer(): + fig, ax = plt.subplots(dpi=100) + ax.plot(range(10), label='Aardvark') + leg = ax.legend() + leg2 = fig.legend() + fig.canvas.draw() + # check that get_window_extent will use the cached renderer + leg.get_window_extent() + leg2.get_window_extent() + + def test_legend_title_fontsize(): # test the title_fontsize kwarg fig, ax = plt.subplots() pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy