diff --git a/lib/matplotlib/colorbar.py b/lib/matplotlib/colorbar.py index 82d5a04f7341..ad6a145a9d12 100644 --- a/lib/matplotlib/colorbar.py +++ b/lib/matplotlib/colorbar.py @@ -580,7 +580,7 @@ def _ticker(self): else: b = self._boundaries[self._inside] locator = ticker.FixedLocator(b, nbins=10) - if isinstance(self.norm, colors.NoNorm): + if isinstance(self.norm, colors.NoNorm) and self.boundaries is None: intv = self._values[0], self._values[-1] else: intv = self.vmin, self.vmax diff --git a/lib/matplotlib/tests/baseline_images/test_colorbar/double_cbar.png b/lib/matplotlib/tests/baseline_images/test_colorbar/double_cbar.png index b7f1f927207a..ff2c50eb405c 100644 Binary files a/lib/matplotlib/tests/baseline_images/test_colorbar/double_cbar.png and b/lib/matplotlib/tests/baseline_images/test_colorbar/double_cbar.png differ diff --git a/lib/matplotlib/tests/baseline_images/test_contour/contour_manual_colors_and_levels.png b/lib/matplotlib/tests/baseline_images/test_contour/contour_manual_colors_and_levels.png index c41174025baf..6de9c579758d 100644 Binary files a/lib/matplotlib/tests/baseline_images/test_contour/contour_manual_colors_and_levels.png and b/lib/matplotlib/tests/baseline_images/test_contour/contour_manual_colors_and_levels.png differ diff --git a/lib/matplotlib/tests/test_colorbar.py b/lib/matplotlib/tests/test_colorbar.py index de7decb6ec62..8d0bc1d709b8 100644 --- a/lib/matplotlib/tests/test_colorbar.py +++ b/lib/matplotlib/tests/test_colorbar.py @@ -282,6 +282,22 @@ def test_colorbar_closed_patch(): extend='neither', values=values) +@cleanup +def test_colorbar_ticks(): + # test fix for #5673 + fig, ax = plt.subplots() + x = np.arange(-3.0, 4.001) + y = np.arange(-4.0, 3.001) + X, Y = np.meshgrid(x, y) + Z = X * Y + clevs = np.array([-12, -5, 0, 5, 12], dtype=float) + colors = ['r', 'g', 'b', 'c'] + cs = ax.contourf(X, Y, Z, clevs, colors=colors) + cbar = fig.colorbar(cs, ax=ax, extend='neither', + orientation='horizontal', ticks=clevs) + assert len(cbar.ax.xaxis.get_ticklocs()) == len(clevs) + + if __name__ == '__main__': import nose nose.runmodule(argv=['-s', '--with-doctest'], exit=False)