Skip to content

Commit cb47f2d

Browse files
authored
Merge pull request #11754 from jklymak/fix-update-spine-positions-before-getting-extents
FIX: update spine positions before get extents
2 parents 3020c21 + 5545050 commit cb47f2d

File tree

3 files changed

+16
-8
lines changed

3 files changed

+16
-8
lines changed

lib/matplotlib/_constrained_layout.py

-8
Original file line numberDiff line numberDiff line change
@@ -145,14 +145,6 @@ def do_constrained_layout(fig, renderer, h_pad, w_pad,
145145
146146
'''
147147

148-
try:
149-
if fig.canvas.toolbar._active in ('PAN', 'ZOOM'):
150-
# don't do constrained layout during zoom and pan.
151-
return
152-
except AttributeError:
153-
# not toolbar, or no _active attribute..
154-
pass
155-
156148
invTransFig = fig.transFigure.inverted().transform_bbox
157149

158150
# list of unique gridspecs that contain child axes:

lib/matplotlib/spines.py

+6
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,12 @@ def get_patch_transform(self):
146146
else:
147147
return super().get_patch_transform()
148148

149+
def get_window_extent(self, renderer=None):
150+
# make sure the location is updated so that transforms etc are
151+
# correct:
152+
self._adjust_location()
153+
return super().get_window_extent(renderer=renderer)
154+
149155
def get_path(self):
150156
return self._path
151157

lib/matplotlib/tests/test_axes.py

+10
Original file line numberDiff line numberDiff line change
@@ -5782,3 +5782,13 @@ def test_zoom_inset():
57825782
[0.8425, 0.907692]])
57835783
np.testing.assert_allclose(axin1.get_position().get_points(),
57845784
xx, rtol=1e-4)
5785+
5786+
5787+
def test_spines_properbbox_after_zoom():
5788+
fig, ax = plt.subplots()
5789+
bb = ax.spines['bottom'].get_window_extent(fig.canvas.get_renderer())
5790+
# this is what zoom calls:
5791+
ax._set_view_from_bbox((320, 320, 500, 500), 'in',
5792+
None, False, False)
5793+
bb2 = ax.spines['bottom'].get_window_extent(fig.canvas.get_renderer())
5794+
np.testing.assert_allclose(bb.get_points(), bb2.get_points(), rtol=1e-6)

0 commit comments

Comments
 (0)