@@ -1836,6 +1836,8 @@ def set_params(self, **kwargs):
18361836 raise ValueError (
18371837 "prune must be 'upper', 'lower', 'both', or None" )
18381838 self ._prune = prune
1839+ if 'min_n_ticks' in kwargs :
1840+ self ._min_n_ticks = max (1 , kwargs ['min_n_ticks' ])
18391841 if 'steps' in kwargs :
18401842 steps = kwargs ['steps' ]
18411843 if steps is None :
@@ -1845,12 +1847,6 @@ def set_params(self, **kwargs):
18451847 self ._extended_steps = self ._staircase (self ._steps )
18461848 if 'integer' in kwargs :
18471849 self ._integer = kwargs ['integer' ]
1848- if self ._integer :
1849- self ._steps = np .array ([n for n in self ._steps
1850- if _divmod (n , 1 )[1 ] < 0.001 ])
1851- self ._extended_steps = self ._staircase (self ._steps )
1852- if 'min_n_ticks' in kwargs :
1853- self ._min_n_ticks = max (1 , kwargs ['min_n_ticks' ])
18541850
18551851 def _raw_ticks (self , vmin , vmax ):
18561852 if self ._nbins == 'auto' :
@@ -1867,6 +1863,11 @@ def _raw_ticks(self, vmin, vmax):
18671863 _vmax = vmax - offset
18681864 raw_step = (vmax - vmin ) / nbins
18691865 steps = self ._extended_steps * scale
1866+ if self ._integer :
1867+ # For steps > 1, keep only integer values.
1868+ igood = (steps < 1 ) | (np .abs (steps - np .round (steps )) < 0.001 )
1869+ steps = steps [igood ]
1870+
18701871 istep = np .nonzero (steps >= raw_step )[0 ][0 ]
18711872
18721873 # Classic round_numbers mode may require a larger step.
0 commit comments