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_)
-
+        
     [EMAIL PROTECTED]
     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.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Matplotlib-checkins mailing list
Matplotlib-checkins@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins

Reply via email to