I think I found a bug with in the Axes3D color support.  When there are 3 or 4 
points to plot, then the you cannot specify an array of rgba arrays for the 
colors of the points.  

I tested in matplotlib 0.99.1 and the latest code from SVN.  Both exibit the 
bug.  This simple code demonstrates the bug:

#simple Axes3D example setting color and size of points
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
from numpy.random import rand

fig = plt.figure()
ax = Axes3D(fig)

n = 3 # ERROR WHEN n = 3 or 4 !!

xs = np.random.rand(n)
ys = np.random.rand(n)
zs = np.random.rand(n)
ss = np.random.rand(n) * 1000
cs = rand(n, 4)

ax.scatter(xs, ys, zs, s=ss, c=cs)

ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')

plt.show()
#end code


This is the call trace for the bug:

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python26\lib\lib-tk\Tkinter.py", line 1410, in __call__
    return self.func(*args)
  File "C:\Python26\lib\site-packages\matplotlib\backends\backend_tkagg.py", 
line 212, in resize
    self.show()
  File "C:\Python26\lib\site-packages\matplotlib\backends\backend_tkagg.py", 
line 215, in draw
    FigureCanvasAgg.draw(self)
  File "C:\Python26\lib\site-packages\matplotlib\backends\backend_agg.py", 
line314, in draw
    self.figure.draw(self.renderer)
  File "C:\Python26\lib\site-packages\matplotlib\artist.py", line 46, in 
draw_wrapper
    draw(artist, renderer, *kl)
  File "C:\Python26\lib\site-packages\matplotlib\figure.py", line 773, in draw
    for a in self.axes: a.draw(renderer)
  File "C:\Python26\lib\site-packages\mpl_toolkits\mplot3d\axes3d.py", line 
150, in draw
    for col in self.collections]
  File "C:\Python26\lib\site-packages\mpl_toolkits\mplot3d\art3d.py", line 290, 
in do_3d_projection
    self.set_facecolors(zalpha(self._facecolor3d, vzs))
  File "C:\Python26\lib\site-packages\mpl_toolkits\mplot3d\art3d.py", line 497, 
in zalpha
    colors = [(c[0], c[1], c[2], c[3] * s) for c, s in zip(colors, sats)]
IndexError: index out of bounds


Thanks,
-Ben

------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to