From 643d7dec04a5a7e155cdc197eb4d9b49ffed5605 Mon Sep 17 00:00:00 2001 From: tiy Date: Sun, 11 Dec 2022 21:41:52 -0500 Subject: [PATCH] suppress failed test case for #24656 --- lib/matplotlib/colorbar.py | 23 +++++++++++++++++++---- lib/matplotlib/tests/test_colorbar.py | 12 ++++++++++++ 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/lib/matplotlib/colorbar.py b/lib/matplotlib/colorbar.py index 1ff10c9e3c96..3dcb1ffe14c4 100644 --- a/lib/matplotlib/colorbar.py +++ b/lib/matplotlib/colorbar.py @@ -1240,8 +1240,18 @@ def _proportional_y(self): if (isinstance(self.norm, colors.BoundaryNorm) or self.boundaries is not None): y = (self._boundaries - self._boundaries[self._inside][0]) - y = y / (self._boundaries[self._inside][-1] - - self._boundaries[self._inside][0]) + + # original + # y = y / (self._boundaries[self._inside][-1] - + # self._boundaries[self._inside][0]) + + # change + if (self._boundaries[self._inside][-1] + != self._boundaries[self._inside][0]): + y = y / (self._boundaries[self._inside][-1] - + self._boundaries[self._inside][0]) + + # need yscaled the same as the axes scale to get # the extend lengths. if self.spacing == 'uniform': @@ -1262,10 +1272,15 @@ def _proportional_y(self): yscaled = np.ma.filled(norm(yscaled), np.nan) # make the lower and upper extend lengths proportional to the lengths # of the first and last boundary spacing (if extendfrac='auto'): - automin = yscaled[1] - yscaled[0] - automax = yscaled[-1] - yscaled[-2] + extendlength = [0, 0] if self._extend_lower() or self._extend_upper(): + # change + automin = yscaled[0] + automax = yscaled[0] + if len(yscaled) > 1: + automin = yscaled[1] - yscaled[0] + automax = yscaled[-1] - yscaled[-2] extendlength = self._get_extension_lengths( self.extendfrac, automin, automax, default=0.05) return y, extendlength diff --git a/lib/matplotlib/tests/test_colorbar.py b/lib/matplotlib/tests/test_colorbar.py index 5ab3ccf13f80..03eb04131930 100644 --- a/lib/matplotlib/tests/test_colorbar.py +++ b/lib/matplotlib/tests/test_colorbar.py @@ -244,6 +244,18 @@ def test_contour_colorbar(): fig.colorbar(CS, orientation='vertical') +def test_contour_uniformfield_colorbar(): + # Smoke test for issue + fig, ax = plt.subplots() + with pytest.warns(Warning) as record: + cs = ax.contour([[2, 2], [2, 2]]) + assert len(record) == 1 + try: + fig.colorbar(cs, ax=ax) + except: + pass + + @image_comparison(['cbar_with_subplots_adjust.png'], remove_text=True, savefig_kwarg={'dpi': 40}) def test_gridspec_make_colorbar():