Revision: 8348
          http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8348&view=rev
Author:   efiring
Date:     2010-05-30 23:58:27 +0000 (Sun, 30 May 2010)

Log Message:
-----------
LogNorm.autoscale ignores nonpositive values; closes 2953069

Modified Paths:
--------------
    trunk/matplotlib/lib/matplotlib/colors.py

Modified: trunk/matplotlib/lib/matplotlib/colors.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/colors.py   2010-05-30 21:31:19 UTC (rev 
8347)
+++ trunk/matplotlib/lib/matplotlib/colors.py   2010-05-30 23:58:27 UTC (rev 
8348)
@@ -850,6 +850,8 @@
             vtype = 'scalar'
             val = ma.array([value]).astype(np.float)
 
+        val = ma.masked_less_equal(val, 0, copy=False)
+
         self.autoscale_None(val)
         vmin, vmax = self.vmin, self.vmax
         if vmin > vmax:
@@ -879,6 +881,24 @@
         else:
             return vmin * pow((vmax/vmin), value)
 
+    def autoscale(self, A):
+        '''
+        Set *vmin*, *vmax* to min, max of *A*.
+        '''
+        A = ma.masked_less_equal(A, 0, copy=False)
+        self.vmin = ma.min(A)
+        self.vmax = ma.max(A)
+
+    def autoscale_None(self, A):
+        ' autoscale only None-valued vmin or vmax'
+        if self.vmin is not None and self.vmax is not None:
+            return
+        A = ma.masked_less_equal(A, 0, copy=False)
+        if self.vmin is None:
+            self.vmin = ma.min(A)
+        if self.vmax is None:
+            self.vmax = ma.max(A)
+
 class BoundaryNorm(Normalize):
     '''
     Generate a colormap index based on discrete intervals.


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------

_______________________________________________
Matplotlib-checkins mailing list
Matplotlib-checkins@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins

Reply via email to