Revision: 7260
          http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7260&view=rev
Author:   heeres
Date:     2009-07-14 21:11:53 +0000 (Tue, 14 Jul 2009)

Log Message:
-----------
Fix mplot3d bug with empty lists
thanks to Ryan Wagner.

Modified Paths:
--------------
    trunk/matplotlib/lib/mpl_toolkits/mplot3d/axes3d.py

Modified: trunk/matplotlib/lib/mpl_toolkits/mplot3d/axes3d.py
===================================================================
--- trunk/matplotlib/lib/mpl_toolkits/mplot3d/axes3d.py 2009-07-14 19:21:47 UTC 
(rev 7259)
+++ trunk/matplotlib/lib/mpl_toolkits/mplot3d/axes3d.py 2009-07-14 21:11:53 UTC 
(rev 7260)
@@ -633,11 +633,14 @@
 
         shade = np.array(shade)
         mask = ~np.isnan(shade)
-        norm = Normalize(min(shade[mask]), max(shade[mask]))
 
-        color = color.copy()
-        color[3] = 1
-        colors = [color * (0.5 + norm(v) * 0.5) for v in shade]
+       if len(shade[mask]) > 0: 
+           norm = Normalize(min(shade[mask]), max(shade[mask]))
+           color = color.copy()
+           color[3] = 1
+           colors = [color * (0.5 + norm(v) * 0.5) for v in shade]
+        else:
+           colors = color.copy()
 
         return colors
 
@@ -707,6 +710,12 @@
             polyverts = []
             normals = []
             nsteps = round(len(topverts[0]) / stride)
+            if nsteps <= 1:
+                if len(topverts[0]) > 1:
+                    nsteps = 2
+                else:
+                    continue
+
             stepsize = (len(topverts[0]) - 1) / (nsteps - 1)
             for i in range(int(round(nsteps)) - 1):
                 i1 = int(round(i * stepsize))
@@ -719,11 +728,11 @@
                 v1 = np.array(topverts[0][i1]) - np.array(topverts[0][i2])
                 v2 = np.array(topverts[0][i1]) - np.array(botverts[0][i1])
                 normals.append(np.cross(v1, v2))
-
+ 
             colors = self._shade_colors(color, normals)
             colors2 = self._shade_colors(color, normals)
             polycol = art3d.Poly3DCollection(polyverts, facecolors=colors,
-                    edgecolors=colors2)
+                edgecolors=colors2)
             self.add_collection3d(polycol)
 
         for col in colls:


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

------------------------------------------------------------------------------
Enter the BlackBerry Developer Challenge  
This is your chance to win up to $100,000 in prizes! For a limited time, 
vendors submitting new applications to BlackBerry App World(TM) will have
the opportunity to enter the BlackBerry Developer Challenge. See full prize  
details at: http://p.sf.net/sfu/Challenge
_______________________________________________
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins

Reply via email to