@@ -1824,12 +1824,12 @@ class MaxNLocator(Locator):
1824
1824
"""
1825
1825
Select no more than N intervals at nice locations.
1826
1826
"""
1827
- default_params = dict (nbins = 10 ,
1828
- steps = None ,
1829
- integer = False ,
1830
- symmetric = False ,
1831
- prune = None ,
1832
- min_n_ticks = 2 )
1827
+ _default_params = dict (nbins = 10 ,
1828
+ steps = None ,
1829
+ integer = False ,
1830
+ symmetric = False ,
1831
+ prune = None ,
1832
+ min_n_ticks = 2 )
1833
1833
1834
1834
def __init__ (self , * args , ** kwargs ):
1835
1835
"""
@@ -1873,12 +1873,17 @@ def __init__(self, *args, **kwargs):
1873
1873
1874
1874
"""
1875
1875
if args :
1876
+ if 'nbins' in kwargs :
1877
+ cbook .deprecated ("3.1" ,
1878
+ message = 'Calling MaxNLocator with positional '
1879
+ 'and keyword parameter *nbins* is '
1880
+ 'considered an error and will fail '
1881
+ 'in future versions of matplotlib.' )
1876
1882
kwargs ['nbins' ] = args [0 ]
1877
1883
if len (args ) > 1 :
1878
1884
raise ValueError (
1879
1885
"Keywords are required for all arguments except 'nbins'" )
1880
- self .set_params (** self .default_params )
1881
- self .set_params (** kwargs )
1886
+ self .set_params (** {** self ._default_params , ** kwargs })
1882
1887
1883
1888
@staticmethod
1884
1889
def _validate_steps (steps ):
@@ -1895,6 +1900,16 @@ def _validate_steps(steps):
1895
1900
steps = np .hstack ((steps , 10 ))
1896
1901
return steps
1897
1902
1903
+ @cbook .deprecated ("3.1" )
1904
+ @property
1905
+ def default_params (self ):
1906
+ return self ._default_params
1907
+
1908
+ @cbook .deprecated ("3.1" )
1909
+ @default_params .setter
1910
+ def default_params (self , params ):
1911
+ self ._default_params = params
1912
+
1898
1913
@staticmethod
1899
1914
def _staircase (steps ):
1900
1915
# Make an extended staircase within which the needed
@@ -1906,28 +1921,35 @@ def _staircase(steps):
1906
1921
def set_params (self , ** kwargs ):
1907
1922
"""Set parameters within this locator."""
1908
1923
if 'nbins' in kwargs :
1909
- self ._nbins = kwargs [ 'nbins' ]
1924
+ self ._nbins = kwargs . pop ( 'nbins' )
1910
1925
if self ._nbins != 'auto' :
1911
1926
self ._nbins = int (self ._nbins )
1912
1927
if 'symmetric' in kwargs :
1913
- self ._symmetric = kwargs [ 'symmetric' ]
1928
+ self ._symmetric = kwargs . pop ( 'symmetric' )
1914
1929
if 'prune' in kwargs :
1915
- prune = kwargs [ 'prune' ]
1930
+ prune = kwargs . pop ( 'prune' )
1916
1931
if prune is not None and prune not in ['upper' , 'lower' , 'both' ]:
1917
1932
raise ValueError (
1918
1933
"prune must be 'upper', 'lower', 'both', or None" )
1919
1934
self ._prune = prune
1920
1935
if 'min_n_ticks' in kwargs :
1921
- self ._min_n_ticks = max (1 , kwargs [ 'min_n_ticks' ] )
1936
+ self ._min_n_ticks = max (1 , kwargs . pop ( 'min_n_ticks' ) )
1922
1937
if 'steps' in kwargs :
1923
- steps = kwargs [ 'steps' ]
1938
+ steps = kwargs . pop ( 'steps' )
1924
1939
if steps is None :
1925
1940
self ._steps = np .array ([1 , 1.5 , 2 , 2.5 , 3 , 4 , 5 , 6 , 8 , 10 ])
1926
1941
else :
1927
1942
self ._steps = self ._validate_steps (steps )
1928
1943
self ._extended_steps = self ._staircase (self ._steps )
1929
1944
if 'integer' in kwargs :
1930
- self ._integer = kwargs ['integer' ]
1945
+ self ._integer = kwargs .pop ('integer' )
1946
+ if kwargs :
1947
+ param = next (k for k in kwargs )
1948
+ cbook .warn_deprecated ("3.1" ,
1949
+ message = "MaxNLocator.set_params got an "
1950
+ f"unexpected parameter: { param } " )
1951
+
1952
+
1931
1953
1932
1954
def _raw_ticks (self , vmin , vmax ):
1933
1955
"""
0 commit comments