Skip to content

Axes can't set navigate_mode. #30349

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 26, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions doc/api/next_api_changes/deprecations/30349-AL.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
``Axes.set_navigate_mode`` is deprecated
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
... with no replacement.
12 changes: 8 additions & 4 deletions lib/matplotlib/axes/_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -724,7 +724,6 @@ def __init__(self, fig,
self.fmt_ydata = None

self.set_navigate(True)
self.set_navigate_mode(None)

if xscale:
self.set_xscale(xscale)
Expand Down Expand Up @@ -4177,17 +4176,22 @@ def get_navigate_mode(self):
"""
Get the navigation toolbar button status: 'PAN', 'ZOOM', or None.
"""
return self._navigate_mode
toolbar = self.figure.canvas.toolbar
if toolbar:
return None if toolbar.mode.name == "NONE" else toolbar.mode.name
manager = self.figure.canvas.manager
if manager and manager.toolmanager:
mode = manager.toolmanager.active_toggle.get("default")
return None if mode is None else mode.upper()

@_api.deprecated("3.11")
def set_navigate_mode(self, b):
"""
Set the navigation toolbar button status.

.. warning::
This is not a user-API function.

"""
self._navigate_mode = b

def _get_view(self):
"""
Expand Down
8 changes: 0 additions & 8 deletions lib/matplotlib/backend_bases.py
Original file line number Diff line number Diff line change
Expand Up @@ -2763,10 +2763,6 @@ class _Mode(str, Enum):
def __str__(self):
return self.value

@property
def _navigate_mode(self):
return self.name if self is not _Mode.NONE else None


class NavigationToolbar2:
"""
Expand Down Expand Up @@ -3037,8 +3033,6 @@ def pan(self, *args):
else:
self.mode = _Mode.PAN
self.canvas.widgetlock(self)
for a in self.canvas.figure.get_axes():
a.set_navigate_mode(self.mode._navigate_mode)

_PanInfo = namedtuple("_PanInfo", "button axes cid")

Expand Down Expand Up @@ -3099,8 +3093,6 @@ def zoom(self, *args):
else:
self.mode = _Mode.ZOOM
self.canvas.widgetlock(self)
for a in self.canvas.figure.get_axes():
a.set_navigate_mode(self.mode._navigate_mode)

_ZoomInfo = namedtuple("_ZoomInfo", "button start_xy axes cid cbar")

Expand Down
3 changes: 0 additions & 3 deletions lib/matplotlib/backend_tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -668,9 +668,6 @@ def disable(self, event=None):
def trigger(self, sender, event, data=None):
self.toolmanager.get_tool(_views_positions).add_figure(self.figure)
super().trigger(sender, event, data)
new_navigate_mode = self.name.upper() if self.toggled else None
for ax in self.figure.axes:
ax.set_navigate_mode(new_navigate_mode)

def scroll_zoom(self, event):
# https://gist.github.com/tacaswell/3144287
Expand Down
Loading