From c64c852040c01202af73c9bbfc6d45831863dc6f Mon Sep 17 00:00:00 2001 From: Jody Klymak Date: Wed, 28 Jul 2021 22:06:12 -0700 Subject: [PATCH] FIX: pass colorbar.set_ticks down to long_axis --- lib/matplotlib/colorbar.py | 58 +++++++++++++++++++++++++------------- 1 file changed, 38 insertions(+), 20 deletions(-) diff --git a/lib/matplotlib/colorbar.py b/lib/matplotlib/colorbar.py index c1d270884a22..0b8953d5241f 100644 --- a/lib/matplotlib/colorbar.py +++ b/lib/matplotlib/colorbar.py @@ -764,7 +764,6 @@ def update_ticks(self): """ Setup the ticks and ticklabels. This should not be needed by users. """ - ax = self.ax # Get the locator and formatter; defaults to self.locator if not None. self._get_ticker_locator_formatter() self._long_axis().set_major_locator(self.locator) @@ -817,26 +816,30 @@ def _get_ticker_locator_formatter(self): _log.debug('locator: %r', locator) @_api.delete_parameter("3.5", "update_ticks") - def set_ticks(self, ticks, update_ticks=True): + def set_ticks(self, ticks, update_ticks=True, labels=None, *, + minor=False, **kwargs): """ Set tick locations. Parameters ---------- - ticks : array-like or `~matplotlib.ticker.Locator` or None - The tick positions can be hard-coded by an array of values; or - they can be defined by a `.Locator`. Setting to *None* reverts - to using a default locator. - - update_ticks : bool, default: True - As of 3.5 this has no effect. - + ticks : list of floats + List of tick locations. + labels : list of str, optional + List of tick labels. If not set, the labels show the data value. + minor : bool, default: False + If ``False``, set the major ticks; if ``True``, the minor ticks. + **kwargs + `.Text` properties for the labels. These take effect only if you + pass *labels*. In other cases, please use `~.Axes.tick_params`. """ if np.iterable(ticks): - self.locator = ticker.FixedLocator(ticks, nbins=len(ticks)) + self._long_axis().set_ticks(ticks, labels=labels, minor=minor, + **kwargs) + self.locator = self._long_axis().get_major_locator() else: self.locator = ticks - self._long_axis().set_major_locator(self.locator) + self._long_axis().set_major_locator(self.locator) self.stale = True def get_ticks(self, minor=False): @@ -854,26 +857,41 @@ def get_ticks(self, minor=False): return self._long_axis().get_majorticklocs() @_api.delete_parameter("3.5", "update_ticks") - def set_ticklabels(self, ticklabels, update_ticks=True): + def set_ticklabels(self, ticklabels, update_ticks=True, *, minor=False, + **kwargs): """ Set tick labels. + .. admonition:: Discouraged + + The use of this method is discouraged, because of the dependency + on tick positions. In most cases, you'll want to use + ``set_ticks(positions, labels=labels)`` instead. + + If you are using this method, you should always fix the tick + positions before, e.g. by using `.Colorbar.set_ticks` or by + explicitly setting a `~.ticker.FixedLocator` on the long axis + of the colorbar. Otherwise, ticks are free to move and the + labels may end up in unexpected positions. + Parameters ---------- ticklabels : sequence of str or of `.Text` Texts for labeling each tick location in the sequence set by - `.Axis.set_ticks`; the number of labels must match the number of - locations. + `.Colorbar.set_ticks`; the number of labels must match the number + of locations. update_ticks : bool, default: True This keyword argument is ignored and will be be removed. Deprecated + + minor : bool + If True, set minor ticks instead of major ticks. + + **kwargs + `.Text` properties for the labels. """ - if isinstance(self.locator, ticker.FixedLocator): - self.formatter = ticker.FixedFormatter(ticklabels) - else: - _api._warn_external("set_ticks() must have been called.") - self.stale = True + self._long_axis().set_ticklabels(ticklabels, minor=minor, **kwargs) def minorticks_on(self): """ pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy