I don't know if everything 3D works, but the first error you note below is fixed in svn, and I suspect in 0.87.7, the last release. 0.87.5 is rather old--quite a bit has changed between minor releases.
Eric Matthew Koichi Grimes wrote: > contourf3D and contour3D seem to be broken in my copy of matplotlib > 0.87.5 that I installed from ubuntu edgy's repositories. Is this a known > problem? I started going through axes3d.py etc and fixing the reported > errors, but the error trail seems to go pretty deep across multiple > files. Now I'm wondering if maybe this is something major that has > already been fixed by more experienced hands in SVN or something. > > In the off chance that this is an unknown problem, I've enumerated the > errors below. These all happened while attempting to run the example > code in http://www.scipy.org/Cookbook/Matplotlib/mplot3D > > If it's fixed in SVN, I'll try installing that, but I haven't seen this > bug mentioned in matplotlib's bug list on sourceforge.net. > > -- Matt > > When I called contourf3D the first time, I got the following error: > > <snip> > File "/usr/lib/python2.4/site-packages/matplotlib/axes3d.py", line 596, > in contourf3D > levels, colls = self.contourf(X, Y, Z, 20) > TypeError: unpack non-sequence > </snip> > > As suggested in the examples page above, I went into contourf3D's > function definition in axes3d.py and replaced: > > levels, colls = self.contourf(X, Y, Z, 20) > > with > > C = self.contourf(X, Y, Z, *args, **kwargs) > levels, colls = (C.levels, C.collections) > > I then got a new error when calling contourf3D: > > <snip> > exceptions.NameError Traceback (most > recent call last) > > /home/mkg/Desktop/<ipython console> > > /usr/lib/python2.4/site-packages/matplotlib/axes3d.py in > contourf3D(self, X, Y, Z, *args, **kwargs) > 604 zs = [z1] * (len(linec._verts[0])/2) > 605 zs += [z2] * (len(linec._verts[0])/2) > --> 606 art3d.wrap_patch(linec, zs, fn=draw_polyc) > 607 self.auto_scale_xyz(X,Y,Z, had_data) > 608 return levels,colls > > NameError: global name 'draw_polyc' is not defined > </snip> > > After changing draw_polyc to art3d.draw_polyc, it complained that > art3d.wrap_patch in fact only takes two arguments. So I changed > > art3d.wrap_patch(linec, zs, fn=draw_polyc) > > to > > art3d.wrap_patch(linec, zs) > > Which led to the latest error message: > > <snip> > Traceback (most recent call last): > File > "/usr/lib/python2.4/site-packages/matplotlib/backends/backend_gtk.py", > line 284, in expose_event > self._render_figure(self._pixmap, w, h) > File > "/usr/lib/python2.4/site-packages/matplotlib/backends/backend_gtkagg.py", > line 73, in _render_figure > FigureCanvasAgg.draw(self) > File > "/usr/lib/python2.4/site-packages/matplotlib/backends/backend_agg.py", > line 391, in draw > self.figure.draw(renderer) > File "/usr/lib/python2.4/site-packages/matplotlib/figure.py", line > 538, in draw > for a in self.axes: a.draw(renderer) > File "/usr/lib/python2.4/site-packages/matplotlib/axes3d.py", line > 172, in draw > Axes.draw(self, renderer) > File "/usr/lib/python2.4/site-packages/matplotlib/axes.py", line 1057, > in draw > a.draw(renderer) > File "/usr/lib/python2.4/site-packages/matplotlib/art3d.py", line 56, > in call_draw3d > self.draw3d(renderer) > File "/usr/lib/python2.4/site-packages/matplotlib/art3d.py", line 184, > in draw3d > xs,ys = zip(*self._offsets) > TypeError: zip() argument after * must be a sequence > </snip> > > Contour3D (not contourf3D) does work in that it successfully displays a > plot, but when I mouseover this plot, my python console fills with the > following error message (one repetition for each mouse event): > > <snip> > /usr/lib/python2.4/site-packages/matplotlib/backends/backend_gtk.py in > motion_notify_event(self, widget, event) > 178 # flipy so y=0 is bottom of canvas > 179 y = self.allocation.height - y > --> 180 FigureCanvasBase.motion_notify_event(self, x, y) > 181 return False # finish event propagation? > 182 > > /usr/lib/python2.4/site-packages/matplotlib/backend_bases.py in > motion_notify_event(self, x, y, guiEvent) > 885 event = MouseEvent('motion_notify_event', self, x, y, > self._button, self._key, guiEvent=guiEvent) > 886 for func in self.callbacks.get('motion_notify_event', > {}).values(): > --> 887 func(event) > 888 > 889 def draw(self, *args, **kwargs): > > /usr/lib/python2.4/site-packages/matplotlib/axes3d.py in on_move(self, > event) > 396 """ > 397 #NOTE - this shouldn't be called before the graph has > been drawn for the first time! > --> 398 if event.inaxes != self or not self.M: > 399 return > 400 # > > ValueError: The truth value of an array with more than one element is > ambiguous. Use a.any() or a.all() > </snip> > > > > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys - and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > Matplotlib-users mailing list > Matplotlib-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/matplotlib-users ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users