From: <ef...@us...> - 2009-02-26 00:12:45
|
Revision: 6936 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6936&view=rev Author: efiring Date: 2009-02-26 00:12:33 +0000 (Thu, 26 Feb 2009) Log Message: ----------- Improve tick location subsetting in FixedLocator. Now it includes zero, if present. Modified Paths: -------------- trunk/matplotlib/CHANGELOG trunk/matplotlib/lib/matplotlib/ticker.py Modified: trunk/matplotlib/CHANGELOG =================================================================== --- trunk/matplotlib/CHANGELOG 2009-02-25 15:45:45 UTC (rev 6935) +++ trunk/matplotlib/CHANGELOG 2009-02-26 00:12:33 UTC (rev 6936) @@ -1,4 +1,6 @@ -2009-02-25 Deprecate numerix, and strip out all but the numpy +2009-02-25 Improve tick location subset choice in FixedLocator. - EF + +2009-02-24 Deprecate numerix, and strip out all but the numpy part of the code. - EF 2009-02-21 Improve scatter argument handling; add an early error Modified: trunk/matplotlib/lib/matplotlib/ticker.py =================================================================== --- trunk/matplotlib/lib/matplotlib/ticker.py 2009-02-25 15:45:45 UTC (rev 6935) +++ trunk/matplotlib/lib/matplotlib/ticker.py 2009-02-26 00:12:33 UTC (rev 6936) @@ -708,10 +708,14 @@ Tick locations are fixed. If nbins is not None, the array of possible positions will be subsampled to keep the number of ticks <= nbins +1. + The subsampling will be done so as to include the smallest + absolute value; for example, if zero is included in the + array of possibilities, then it is guaranteed to be one of + the chosen ticks. """ def __init__(self, locs, nbins=None): - self.locs = locs + self.locs = np.asarray(locs) self.nbins = nbins if self.nbins is not None: self.nbins = max(self.nbins, 2) @@ -721,7 +725,12 @@ if self.nbins is None: return self.locs step = max(int(0.99 + len(self.locs) / float(self.nbins)), 1) - return self.locs[::step] + ticks = self.locs[::step] + for i in range(1,step): + ticks1 = self.locs[i::step] + if np.absolute(ticks1).min() < np.absolute(ticks).min(): + ticks = ticks1 + return ticks This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |