6
6
import functools
7
7
import logging
8
8
from numbers import Real
9
+ import warnings
9
10
10
11
import numpy as np
11
12
@@ -1965,7 +1966,10 @@ def set_ticklabels(self, labels, *, minor=False, fontdict=None, **kwargs):
1965
1966
raise TypeError (f"{ labels := } must be a sequence" ) from None
1966
1967
locator = (self .get_minor_locator () if minor
1967
1968
else self .get_major_locator ())
1968
- if isinstance (locator , mticker .FixedLocator ):
1969
+ if not labels :
1970
+ # eg labels=[]:
1971
+ formatter = mticker .NullFormatter ()
1972
+ elif isinstance (locator , mticker .FixedLocator ):
1969
1973
# Passing [] as a list of labels is often used as a way to
1970
1974
# remove all tick labels, so only error for > 0 labels
1971
1975
if len (locator .locs ) != len (labels ) and len (labels ) != 0 :
@@ -1978,16 +1982,21 @@ def set_ticklabels(self, labels, *, minor=False, fontdict=None, **kwargs):
1978
1982
func = functools .partial (self ._format_with_dict , tickd )
1979
1983
formatter = mticker .FuncFormatter (func )
1980
1984
else :
1985
+ _api .warn_external (
1986
+ "set_ticklabels should only be used with set_ticks or "
1987
+ "a FixedLocator." )
1981
1988
formatter = mticker .FixedFormatter (labels )
1982
1989
1983
- if minor :
1984
- self .set_minor_formatter (formatter )
1985
- locs = self .get_minorticklocs ()
1986
- ticks = self .get_minor_ticks (len (locs ))
1987
- else :
1988
- self .set_major_formatter (formatter )
1989
- locs = self .get_majorticklocs ()
1990
- ticks = self .get_major_ticks (len (locs ))
1990
+ with warnings .catch_warnings ():
1991
+ warnings .filterwarnings ("ignore" , message = "FixedFormatter should only " )
1992
+ if minor :
1993
+ self .set_minor_formatter (formatter )
1994
+ locs = self .get_minorticklocs ()
1995
+ ticks = self .get_minor_ticks (len (locs ))
1996
+ else :
1997
+ self .set_major_formatter (formatter )
1998
+ locs = self .get_majorticklocs ()
1999
+ ticks = self .get_major_ticks (len (locs ))
1991
2000
1992
2001
ret = []
1993
2002
if fontdict is not None :
0 commit comments