Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 0042efd

Browse files
authored
Merge pull request #18173 from QuLogic/fix-get-navigate-mode
Fix the return value of Axes.get_navigate_mode.
2 parents 8443fae + f4a75f8 commit 0042efd

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

lib/matplotlib/backend_bases.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2784,6 +2784,10 @@ class _Mode(str, Enum):
27842784
def __str__(self):
27852785
return self.value
27862786

2787+
@property
2788+
def _navigate_mode(self):
2789+
return self.name if self is not _Mode.NONE else None
2790+
27872791

27882792
class NavigationToolbar2:
27892793
"""
@@ -3047,7 +3051,7 @@ def pan(self, *args):
30473051
self.mode = _Mode.PAN
30483052
self.canvas.widgetlock(self)
30493053
for a in self.canvas.figure.get_axes():
3050-
a.set_navigate_mode(self.mode)
3054+
a.set_navigate_mode(self.mode._navigate_mode)
30513055
self.set_message(self.mode)
30523056

30533057
def press_pan(self, event):
@@ -3117,7 +3121,7 @@ def zoom(self, *args):
31173121
self.mode = _Mode.ZOOM
31183122
self.canvas.widgetlock(self)
31193123
for a in self.canvas.figure.get_axes():
3120-
a.set_navigate_mode(self.mode)
3124+
a.set_navigate_mode(self.mode._navigate_mode)
31213125
self.set_message(self.mode)
31223126

31233127
def press_zoom(self, event):

lib/matplotlib/tests/test_backend_bases.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,9 +107,11 @@ def test_location_event_position(x, y):
107107
def test_interactive_zoom():
108108
fig, ax = plt.subplots()
109109
ax.set(xscale="logit")
110+
assert ax.get_navigate_mode() is None
110111

111112
tb = NavigationToolbar2(fig.canvas)
112113
tb.zoom()
114+
assert ax.get_navigate_mode() == 'ZOOM'
113115

114116
xlim0 = ax.get_xlim()
115117
ylim0 = ax.get_ylim()
@@ -143,3 +145,6 @@ def test_interactive_zoom():
143145
# Absolute tolerance much less than original xmin (1e-7).
144146
assert ax.get_xlim() == pytest.approx(xlim0, rel=0, abs=1e-10)
145147
assert ax.get_ylim() == pytest.approx(ylim0, rel=0, abs=1e-10)
148+
149+
tb.zoom()
150+
assert ax.get_navigate_mode() is None

0 commit comments

Comments
 (0)