From 50442c818d2a0e87279ce620ae5b841db0d692c7 Mon Sep 17 00:00:00 2001 From: fredrik-1 Date: Mon, 30 Jul 2018 14:38:12 +0200 Subject: [PATCH] update annotations --- lib/matplotlib/tests/test_text.py | 12 ++++++++++++ lib/matplotlib/text.py | 1 + 2 files changed, 13 insertions(+) diff --git a/lib/matplotlib/tests/test_text.py b/lib/matplotlib/tests/test_text.py index 47589a342a35..44407d70b3fc 100644 --- a/lib/matplotlib/tests/test_text.py +++ b/lib/matplotlib/tests/test_text.py @@ -499,3 +499,15 @@ def test_text_repr(): plt.plot(['A', 'B'], [1, 2]) txt = plt.text(['A'], 0.5, 'Boo') print(txt) + + +def test_annotation_update(): + fig, ax = plt.subplots(1, 1) + an = ax.annotate('annotation', xy=(0.5, 0.5)) + extent1 = an.get_window_extent(fig.canvas.get_renderer()) + fig.tight_layout() + extent2 = an.get_window_extent(fig.canvas.get_renderer()) + + np.testing.assert_raises(AssertionError, np.testing.assert_allclose, + extent1.get_points(), extent2.get_points(), + rtol=1e-6) diff --git a/lib/matplotlib/text.py b/lib/matplotlib/text.py index e9aca8b91da8..b49bac53a893 100644 --- a/lib/matplotlib/text.py +++ b/lib/matplotlib/text.py @@ -2354,6 +2354,7 @@ def get_window_extent(self, renderer=None): *dpi* used defaults to self.figure.dpi; the renderer dpi is irrelevant. ''' + self.update_positions(renderer) if not self.get_visible(): return Bbox.unit()