Hi all, Did any progress get made beyond this discussion below? I'm trying to get contourf3D working, using latest svn, and it still seems to be out-of-order. Contour3D works, but I get exactly the same errors (and went exactly the same route trying to fix them) as Matthew.
On 13/01/07, Eric Firing <[EMAIL PROTECTED]> wrote: > I don't know if everything 3D works, but the first error you note below Which one is supposed to be the 'first' error mentioned here? In my latest svn checkout, the line: levels, colls = self.contourf(X, Y, Z, 20) still appears to be present. > 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> -- AJC McMorland, PhD Student Physiology, University of Auckland ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier. Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users