From: <md...@us...> - 2007-09-24 17:33:08
|
Revision: 3886 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=3886&view=rev Author: mdboom Date: 2007-09-24 10:33:03 -0700 (Mon, 24 Sep 2007) Log Message: ----------- Fixed log scaling again. Modified Paths: -------------- branches/transforms/lib/matplotlib/scale.py branches/transforms/lib/matplotlib/ticker.py branches/transforms/lib/matplotlib/transforms.py Modified: branches/transforms/lib/matplotlib/scale.py =================================================================== --- branches/transforms/lib/matplotlib/scale.py 2007-09-24 16:54:37 UTC (rev 3885) +++ branches/transforms/lib/matplotlib/scale.py 2007-09-24 17:33:03 UTC (rev 3886) @@ -23,6 +23,7 @@ self._base = base self._viewLim = viewLim self._direction = direction + self.set_children(['_viewLim']) def transform(self, a): a, affine = self.transform_without_affine(a) @@ -31,13 +32,9 @@ def transform_without_affine(self, a): # MGDTODO: Support different bases base = self._base - marray = ma.masked_where(a <= 0.0, a) + marray = ma.masked_where(a <= 0.0, a * 10.0) marray = npy.log10(marray) - minimum, maximum = getattr(self._viewLim, self._direction) - minimum, maximum = npy.log10([minimum, maximum]) - print marray - print Affine1D.from_values(maximum - minimum, minimum).inverted() - print minimum, maximum + minimum, maximum = npy.log10(getattr(self._viewLim, self._direction) * 10.0) return marray, Affine1D.from_values(maximum - minimum, minimum).inverted() def inverted(self): @@ -51,11 +48,12 @@ self._base = base self._viewLim = viewLim self._direction = direction - + self.set_children(['_viewLim']) + def transform(self, a): - minimum, maximum = getattr(self._viewLim, self._direction) - Affine1D.from_values(maximum - minimum, minimum).transform(a) - return ma.power(10.0, a) + minimum, maximum = npy.log10(getattr(self._viewLim, self._direction) * 10.0) + a = Affine1D.from_values(maximum - minimum, minimum).transform(a) + return ma.power(10.0, a) / 10.0 def inverted(self): return LogScale.LogTransform(self._viewLim, self._direction, self._base) Modified: branches/transforms/lib/matplotlib/ticker.py =================================================================== --- branches/transforms/lib/matplotlib/ticker.py 2007-09-24 16:54:37 UTC (rev 3885) +++ branches/transforms/lib/matplotlib/ticker.py 2007-09-24 17:33:03 UTC (rev 3886) @@ -928,15 +928,19 @@ # if minpos<=0: # raise RuntimeError('No positive data to plot') - minpos = max(vmin, 0.00001) #MGDTODO - if vmin<=0: - vmin = minpos + # MGDTODO: Find a good way to track minpos + if vmin <= 0.0: + vmin = 0.1 + if not is_decade(vmin,self._base): vmin = decade_down(vmin,self._base) if not is_decade(vmax,self._base): vmax = decade_up(vmax,self._base) if vmin==vmax: vmin = decade_down(vmin,self._base) vmax = decade_up(vmax,self._base) - return mtransforms.nonsingular(vmin, vmax) + print vmin, vmax + result = mtransforms.nonsingular(vmin, vmax) + print result + return result class AutoLocator(MaxNLocator): def __init__(self): Modified: branches/transforms/lib/matplotlib/transforms.py =================================================================== --- branches/transforms/lib/matplotlib/transforms.py 2007-09-24 16:54:37 UTC (rev 3885) +++ branches/transforms/lib/matplotlib/transforms.py 2007-09-24 17:33:03 UTC (rev 3886) @@ -181,7 +181,7 @@ def __init__(self, points): BboxBase.__init__(self) self._points = npy.asarray(points, npy.float_) - + #@staticmethod def unit(): return Bbox.from_lbrt(0., 0., 1., 1.) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |