@@ -1726,6 +1726,8 @@ def set_params(self, **kwargs):
17261726 raise ValueError (
17271727 "prune must be 'upper', 'lower', 'both', or None" )
17281728 self ._prune = prune
1729+ if 'min_n_ticks' in kwargs :
1730+ self ._min_n_ticks = max (1 , kwargs ['min_n_ticks' ])
17291731 if 'steps' in kwargs :
17301732 steps = kwargs ['steps' ]
17311733 if steps is None :
@@ -1735,12 +1737,6 @@ def set_params(self, **kwargs):
17351737 self ._extended_steps = self ._staircase (self ._steps )
17361738 if 'integer' in kwargs :
17371739 self ._integer = kwargs ['integer' ]
1738- if self ._integer :
1739- self ._steps = np .array ([n for n in self ._steps
1740- if _divmod (n , 1 )[1 ] < 0.001 ])
1741- self ._extended_steps = self ._staircase (self ._steps )
1742- if 'min_n_ticks' in kwargs :
1743- self ._min_n_ticks = max (1 , kwargs ['min_n_ticks' ])
17441740
17451741 def _raw_ticks (self , vmin , vmax ):
17461742 if self ._nbins == 'auto' :
@@ -1757,6 +1753,11 @@ def _raw_ticks(self, vmin, vmax):
17571753 _vmax = vmax - offset
17581754 raw_step = (vmax - vmin ) / nbins
17591755 steps = self ._extended_steps * scale
1756+ if self ._integer :
1757+ # For steps > 1, keep only integer values.
1758+ igood = (steps < 1 ) | (np .abs (steps - np .round (steps )) < 0.001 )
1759+ steps = steps [igood ]
1760+
17601761 istep = np .nonzero (steps >= raw_step )[0 ][0 ]
17611762
17621763 # Classic round_numbers mode may require a larger step.
0 commit comments