diff --git a/lib/matplotlib/axes/_base.py b/lib/matplotlib/axes/_base.py index 28c4c9caa8fd..1f8e40e28e31 100644 --- a/lib/matplotlib/axes/_base.py +++ b/lib/matplotlib/axes/_base.py @@ -3082,7 +3082,7 @@ def set_xbound(self, lower=None, upper=None): Set the lower and upper numerical bounds of the x-axis. This method will honor axes inversion regardless of parameter order. - It will not change the autoscaling setting (``Axes._autoscaleXon``). + It will not change the autoscaling setting (`.get_autoscalex_on()`). Parameters ---------- @@ -3100,22 +3100,13 @@ def set_xbound(self, lower=None, upper=None): lower, upper = lower old_lower, old_upper = self.get_xbound() - if lower is None: lower = old_lower if upper is None: upper = old_upper - if self.xaxis_inverted(): - if lower < upper: - self.set_xlim(upper, lower, auto=None) - else: - self.set_xlim(lower, upper, auto=None) - else: - if lower < upper: - self.set_xlim(lower, upper, auto=None) - else: - self.set_xlim(upper, lower, auto=None) + self.set_xlim(sorted((lower, upper), reverse=self.xaxis_inverted()), + auto=None) def get_xlim(self): """ @@ -3480,7 +3471,7 @@ def set_ybound(self, lower=None, upper=None): Set the lower and upper numerical bounds of the y-axis. This method will honor axes inversion regardless of parameter order. - It will not change the autoscaling setting (``Axes._autoscaleYon``). + It will not change the autoscaling setting (`.get_autoscaley_on()`). Parameters ---------- @@ -3498,22 +3489,13 @@ def set_ybound(self, lower=None, upper=None): lower, upper = lower old_lower, old_upper = self.get_ybound() - if lower is None: lower = old_lower if upper is None: upper = old_upper - if self.yaxis_inverted(): - if lower < upper: - self.set_ylim(upper, lower, auto=None) - else: - self.set_ylim(lower, upper, auto=None) - else: - if lower < upper: - self.set_ylim(lower, upper, auto=None) - else: - self.set_ylim(upper, lower, auto=None) + self.set_ylim(sorted((lower, upper), reverse=self.yaxis_inverted()), + auto=None) def get_ylim(self): """ diff --git a/lib/mpl_toolkits/mplot3d/axes3d.py b/lib/mpl_toolkits/mplot3d/axes3d.py index 624d46f003ae..d258a6feb4dd 100644 --- a/lib/mpl_toolkits/mplot3d/axes3d.py +++ b/lib/mpl_toolkits/mplot3d/axes3d.py @@ -1464,30 +1464,24 @@ def get_zbound(self): def set_zbound(self, lower=None, upper=None): """ Set the lower and upper numerical bounds of the z-axis. + This method will honor axes inversion regardless of parameter order. - It will not change the :attr:`_autoscaleZon` attribute. + It will not change the autoscaling setting (`.get_autoscalez_on()`). .. versionadded :: 1.1.0 This function was added, but not tested. Please report any bugs. """ if upper is None and np.iterable(lower): lower, upper = lower + old_lower, old_upper = self.get_zbound() if lower is None: lower = old_lower if upper is None: upper = old_upper - if self.zaxis_inverted(): - if lower < upper: - self.set_zlim(upper, lower, auto=None) - else: - self.set_zlim(lower, upper, auto=None) - else: - if lower < upper: - self.set_zlim(lower, upper, auto=None) - else: - self.set_zlim(upper, lower, auto=None) + self.set_zlim(sorted((lower, upper), reverse=self.zaxis_inverted()), + auto=None) def text(self, x, y, z, s, zdir=None, **kwargs): '''