From 79250d1a4d01eef0da05e8419eb2d6dca8f3b367 Mon Sep 17 00:00:00 2001 From: Ruth Comer <10599679+rcomer@users.noreply.github.com> Date: Sun, 25 Jun 2023 12:02:08 +0100 Subject: [PATCH] FIX: AnnotationBbox extents before draw --- lib/matplotlib/offsetbox.py | 4 ++++ lib/matplotlib/tests/test_offsetbox.py | 24 ++++++++---------------- 2 files changed, 12 insertions(+), 16 deletions(-) diff --git a/lib/matplotlib/offsetbox.py b/lib/matplotlib/offsetbox.py index 6b3ed4f42557..a3f3c87be295 100644 --- a/lib/matplotlib/offsetbox.py +++ b/lib/matplotlib/offsetbox.py @@ -1389,11 +1389,15 @@ def get_window_extent(self, renderer=None): # docstring inherited if renderer is None: renderer = self.figure._get_renderer() + self.update_positions(renderer) return Bbox.union([child.get_window_extent(renderer) for child in self.get_children()]) def get_tightbbox(self, renderer=None): # docstring inherited + if renderer is None: + renderer = self.figure._get_renderer() + self.update_positions(renderer) return Bbox.union([child.get_tightbbox(renderer) for child in self.get_children()]) diff --git a/lib/matplotlib/tests/test_offsetbox.py b/lib/matplotlib/tests/test_offsetbox.py index 7b8fc5e9ee99..49b55e4c9326 100644 --- a/lib/matplotlib/tests/test_offsetbox.py +++ b/lib/matplotlib/tests/test_offsetbox.py @@ -257,7 +257,8 @@ def test_anchoredtext_horizontal_alignment(): ax.add_artist(text2) -def test_annotationbbox_extents(): +@pytest.mark.parametrize("extent_kind", ["window_extent", "tightbbox"]) +def test_annotationbbox_extents(extent_kind): plt.rcParams.update(plt.rcParamsDefault) fig, ax = plt.subplots(figsize=(4, 3), dpi=100) @@ -284,31 +285,22 @@ def test_annotationbbox_extents(): arrowprops=dict(arrowstyle="->")) ax.add_artist(ab6) - fig.canvas.draw() - renderer = fig.canvas.get_renderer() - # Test Annotation - bb1w = an1.get_window_extent(renderer) - bb1e = an1.get_tightbbox(renderer) + bb1 = getattr(an1, f"get_{extent_kind}")() target1 = [332.9, 242.8, 467.0, 298.9] - assert_allclose(bb1w.extents, target1, atol=2) - assert_allclose(bb1e.extents, target1, atol=2) + assert_allclose(bb1.extents, target1, atol=2) # Test AnnotationBbox - bb3w = ab3.get_window_extent(renderer) - bb3e = ab3.get_tightbbox(renderer) + bb3 = getattr(ab3, f"get_{extent_kind}")() target3 = [-17.6, 129.0, 200.7, 167.9] - assert_allclose(bb3w.extents, target3, atol=2) - assert_allclose(bb3e.extents, target3, atol=2) + assert_allclose(bb3.extents, target3, atol=2) - bb6w = ab6.get_window_extent(renderer) - bb6e = ab6.get_tightbbox(renderer) + bb6 = getattr(ab6, f"get_{extent_kind}")() target6 = [180.0, -32.0, 230.0, 92.9] - assert_allclose(bb6w.extents, target6, atol=2) - assert_allclose(bb6e.extents, target6, atol=2) + assert_allclose(bb6.extents, target6, atol=2) # Test bbox_inches='tight' buf = io.BytesIO() 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