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

Skip to content

Commit e697fbd

Browse files
committed
Synchronize view limits of shared axes after setting ticks
1 parent 28ba3c7 commit e697fbd

File tree

1 file changed

+21
-9
lines changed

1 file changed

+21
-9
lines changed

lib/matplotlib/axis.py

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1834,18 +1834,30 @@ def set_ticks(self, ticks, minor=False):
18341834
"""
18351835
# XXX if the user changes units, the information will be lost here
18361836
ticks = self.convert_units(ticks)
1837-
try:
1838-
axis_name, = [
1839-
k for k, v in self.axes._get_axis_map().items() if v is self]
1840-
except ValueError:
1837+
if self is self.axes.xaxis:
1838+
shared = [
1839+
ax.xaxis
1840+
for ax in self.axes.get_shared_x_axes().get_siblings(self.axes)
1841+
]
1842+
elif self is self.axes.yaxis:
1843+
shared = [
1844+
ax.yaxis
1845+
for ax in self.axes.get_shared_y_axes().get_siblings(self.axes)
1846+
]
1847+
elif hasattr(self.axes, "zaxis") and self is self.axes.zaxis:
1848+
shared = [
1849+
ax.zaxis
1850+
for ax in self.axes._shared_z_axes.get_siblings(self.axes)
1851+
]
1852+
else:
1853+
shared = [self]
1854+
for axis in shared:
18411855
if len(ticks) > 1:
1842-
xleft, xright = self.get_view_interval()
1856+
xleft, xright = axis.get_view_interval()
18431857
if xright > xleft:
1844-
self.set_view_interval(min(ticks), max(ticks))
1858+
axis.set_view_interval(min(ticks), max(ticks))
18451859
else:
1846-
self.set_view_interval(max(ticks), min(ticks))
1847-
else:
1848-
getattr(self.axes, f"set_{axis_name}bound")(min(ticks), max(ticks))
1860+
axis.set_view_interval(max(ticks), min(ticks))
18491861
self.axes.stale = True
18501862
if minor:
18511863
self.set_minor_locator(mticker.FixedLocator(ticks))

0 commit comments

Comments
 (0)