@@ -1726,6 +1726,8 @@ def set_params(self, **kwargs):
1726
1726
raise ValueError (
1727
1727
"prune must be 'upper', 'lower', 'both', or None" )
1728
1728
self ._prune = prune
1729
+ if 'min_n_ticks' in kwargs :
1730
+ self ._min_n_ticks = max (1 , kwargs ['min_n_ticks' ])
1729
1731
if 'steps' in kwargs :
1730
1732
steps = kwargs ['steps' ]
1731
1733
if steps is None :
@@ -1735,12 +1737,6 @@ def set_params(self, **kwargs):
1735
1737
self ._extended_steps = self ._staircase (self ._steps )
1736
1738
if 'integer' in kwargs :
1737
1739
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' ])
1744
1740
1745
1741
def _raw_ticks (self , vmin , vmax ):
1746
1742
if self ._nbins == 'auto' :
@@ -1757,6 +1753,11 @@ def _raw_ticks(self, vmin, vmax):
1757
1753
_vmax = vmax - offset
1758
1754
raw_step = (vmax - vmin ) / nbins
1759
1755
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
+
1760
1761
istep = np .nonzero (steps >= raw_step )[0 ][0 ]
1761
1762
1762
1763
# Classic round_numbers mode may require a larger step.
0 commit comments