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,11 @@ 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
+ return []
1973
+ elif isinstance (locator , mticker .FixedLocator ):
1969
1974
# Passing [] as a list of labels is often used as a way to
1970
1975
# remove all tick labels, so only error for > 0 labels
1971
1976
if len (locator .locs ) != len (labels ) and len (labels ) != 0 :
@@ -1978,16 +1983,21 @@ def set_ticklabels(self, labels, *, minor=False, fontdict=None, **kwargs):
1978
1983
func = functools .partial (self ._format_with_dict , tickd )
1979
1984
formatter = mticker .FuncFormatter (func )
1980
1985
else :
1986
+ _api .warn_external (
1987
+ "set_ticklabels should only be used with set_ticks or "
1988
+ "a FixedLocator." )
1981
1989
formatter = mticker .FixedFormatter (labels )
1982
1990
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 ))
1991
+ with warnings .catch_warnings ():
1992
+ warnings .filterwarnings ("ignore" , message = "FixedFormatter should only " )
1993
+ if minor :
1994
+ self .set_minor_formatter (formatter )
1995
+ locs = self .get_minorticklocs ()
1996
+ ticks = self .get_minor_ticks (len (locs ))
1997
+ else :
1998
+ self .set_major_formatter (formatter )
1999
+ locs = self .get_majorticklocs ()
2000
+ ticks = self .get_major_ticks (len (locs ))
1991
2001
1992
2002
ret = []
1993
2003
if fontdict is not None :
0 commit comments