From 717a83f9543c27e2a79570b22bb02e449bb4d9e6 Mon Sep 17 00:00:00 2001 From: Jae-Joon Lee Date: Mon, 28 Nov 2022 09:49:49 +0900 Subject: [PATCH 1/2] fix window_extent of AxesImage --- lib/matplotlib/image.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/matplotlib/image.py b/lib/matplotlib/image.py index 22ce5d58fa05..78e9237e1cb4 100644 --- a/lib/matplotlib/image.py +++ b/lib/matplotlib/image.py @@ -935,7 +935,7 @@ def __init__(self, ax, def get_window_extent(self, renderer=None): x0, x1, y0, y1 = self._extent bbox = Bbox.from_extents([x0, y0, x1, y1]) - return bbox.transformed(self.axes.transData) + return bbox.transformed(self.get_transform()) def make_image(self, renderer, magnification=1.0, unsampled=False): # docstring inherited From 50218d16b8b09c2a8045f074a492720734d0a008 Mon Sep 17 00:00:00 2001 From: Jae-Joon Lee Date: Wed, 30 Nov 2022 21:47:13 +0900 Subject: [PATCH 2/2] Add test for AxesImage.get_window_extent w/ transAxes --- lib/matplotlib/tests/test_image.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/lib/matplotlib/tests/test_image.py b/lib/matplotlib/tests/test_image.py index 46dbe4cfe8f8..f10fb9dd97e6 100644 --- a/lib/matplotlib/tests/test_image.py +++ b/lib/matplotlib/tests/test_image.py @@ -589,6 +589,20 @@ def test_get_window_extent_for_AxisImage(): assert_array_equal(im_bbox.get_points(), [[400, 200], [700, 900]]) + fig, ax = plt.subplots(figsize=(10, 10), dpi=100) + ax.set_position([0, 0, 1, 1]) + ax.set_xlim(1, 2) + ax.set_ylim(0, 1) + im_obj = ax.imshow( + im, extent=[0.4, 0.7, 0.2, 0.9], interpolation='nearest', + transform=ax.transAxes) + + fig.canvas.draw() + renderer = fig.canvas.renderer + im_bbox = im_obj.get_window_extent(renderer) + + assert_array_equal(im_bbox.get_points(), [[400, 200], [700, 900]]) + @image_comparison(['zoom_and_clip_upper_origin.png'], remove_text=True, style='mpl20')