Re: [matplotlib-devel] Updating MPlot3D to a more recent matplotlib.
Hi, I've done some further refactoring of mplot3d: - Almost all of the test plotting functions work, except for test_bar2D. Filled contours are not perfect yet and need a bit more work. Try "python axes.py" with the attached files to see how it looks! - I removed the Wrap2D class, which was using private class members throughout. I replaced this approach with dynamically changing the class type for Artist objects (e.g. PolyCollection to Poly3DCollection). This is also a bit of voodoo, but I think in the end it results in a bit less code, which is also more readable. - Much more code could still be removed (and added again later if necessary) Regards, Reinier BTW: I think plugging sympy's plotting functionality into matplotlib would not be so easy! The mplot3d code is much better suited for this... On Thu, Mar 5, 2009 at 7:13 PM, Gael Varoquaux wrote: > On Thu, Mar 05, 2009 at 07:03:00PM +0100, Cohen-Tanugi Johann wrote: >> Nevertheless, I hate to think of matplotlib sending people to mayavi2 each >> time 3D plotting is needed. Basic functionalities built-in would still be >> highly desirable. > > Absolutely. I think we need basic 3D plotting functionnality that work > without any 3D rendering library, both for robustess and for simplicity. > > I used to think different, because I believe that this approach is bound > to fail on anything but very simple problems (my experience with gnuplot > :>). I fear people are going to try and pull too far the simple 3D > implementation. > > Nevertheless, it would be great to have some 3D in matplotlib, for easier > mixing of 2D and 3D (I do this with Mayavi2 by saving to a temporary > file, loading the result with matplotlib's imread, and displaying it with > an imshow -- ugly!), and to have backend-universal, robust, 3D plotting. > > Gaël > > -- > Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA > -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise > -Strategies to boost innovation and cut costs with open source participation > -Receive a $600 discount off the registration fee with the source code: SFAD > http://p.sf.net/sfu/XcvMzF8H > ___ > Matplotlib-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/matplotlib-devel > -- Reinier Heeres Waalstraat 17 2515 XK Den Haag The Netherlands Tel: +31 6 10852639 mplot3d_20080309.tgz Description: GNU Zip compressed data -- Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H___ Matplotlib-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
Re: [matplotlib-devel] Updating MPlot3D to a more recent matplotlib.
Hi Reinier, Awesome. Those plots are making me smile! I also agree with your refactoring and have applied your patch to my git repository. I agree with you concerning the sympy plotting routines. I think what we have here is quite flexible and does a very good job of replicating the equivalent functionality of MATLAB. I think it would be a huge effort trying to make 2D plots and 3D plots look consistent if another approach was taken. Indeed, this is a desirable characteristic. In addition, the code is actually very short and easy to maintain. Given that matplotlib has had trouble maintaining 3D code in the past, it might not be a good idea to switch to a more complicated codebase. You should grab some of my more recent changes as I have added a few more fixes. Most importantly, if you reuse the same figure, the old event handlers will still attached preventing Axes objects from dieing and causing interactive manipulation of the plots to be very sluggish. Also, in terms of performance, I have found that switching to TkAgg from GTKAgg was helpful. Also, I think the original code from John Porter was under a BSD license. I am thinking of adding our names and the BSD license to the top of each file to protect it while its not officially part of matplotlib. What do you think? Best, Jonathan. On Sun, Mar 8, 2009 at 8:04 PM, Reinier Heeres wrote: > Hi, > > I've done some further refactoring of mplot3d: > > - Almost all of the test plotting functions work, except for > test_bar2D. Filled contours are not perfect yet and need a bit more > work. Try "python axes.py" with the attached files to see how it > looks! > > - I removed the Wrap2D class, which was using private class members > throughout. I replaced this approach with dynamically changing the > class type for Artist objects (e.g. PolyCollection to > Poly3DCollection). This is also a bit of voodoo, but I think in the > end it results in a bit less code, which is also more readable. > > - Much more code could still be removed (and added again later if necessary) > > Regards, > Reinier > > BTW: I think plugging sympy's plotting functionality into matplotlib > would not be so easy! The mplot3d code is much better suited for > this... > > On Thu, Mar 5, 2009 at 7:13 PM, Gael Varoquaux > wrote: >> On Thu, Mar 05, 2009 at 07:03:00PM +0100, Cohen-Tanugi Johann wrote: >>> Nevertheless, I hate to think of matplotlib sending people to mayavi2 each >>> time 3D plotting is needed. Basic functionalities built-in would still be >>> highly desirable. >> >> Absolutely. I think we need basic 3D plotting functionnality that work >> without any 3D rendering library, both for robustess and for simplicity. >> >> I used to think different, because I believe that this approach is bound >> to fail on anything but very simple problems (my experience with gnuplot >> :>). I fear people are going to try and pull too far the simple 3D >> implementation. >> >> Nevertheless, it would be great to have some 3D in matplotlib, for easier >> mixing of 2D and 3D (I do this with Mayavi2 by saving to a temporary >> file, loading the result with matplotlib's imread, and displaying it with >> an imshow -- ugly!), and to have backend-universal, robust, 3D plotting. >> >> Gaël >> >> -- >> Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA >> -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise >> -Strategies to boost innovation and cut costs with open source participation >> -Receive a $600 discount off the registration fee with the source code: SFAD >> http://p.sf.net/sfu/XcvMzF8H >> ___ >> Matplotlib-devel mailing list >> [email protected] >> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel >> > > > > -- > Reinier Heeres > Waalstraat 17 > 2515 XK Den Haag > The Netherlands > > Tel: +31 6 10852639 > > -- > Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA > -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise > -Strategies to boost innovation and cut costs with open source participation > -Receive a $600 discount off the registration fee with the source code: SFAD > http://p.sf.net/sfu/XcvMzF8H > ___ > Matplotlib-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/matplotlib-devel > > -- Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code:
Re: [matplotlib-devel] Updating MPlot3D to a more recent matplotlib.
On Sun, Mar 8, 2009 at 7:45 PM, Jonathan Taylor wrote: > Hi Reinier, > > Awesome. Those plots are making me smile! I also agree with your > refactoring and have applied your patch to my git repository. > > I agree with you concerning the sympy plotting routines. I think what > we have here is quite flexible and does a very good job of replicating > the equivalent functionality of MATLAB. I think it would be a huge > effort trying to make 2D plots and 3D plots look consistent if another > approach was taken. Indeed, this is a desirable characteristic. In > addition, the code is actually very short and easy to maintain. Given > that matplotlib has had trouble maintaining 3D code in the past, it > might not be a good idea to switch to a more complicated codebase. > > You should grab some of my more recent changes as I have added a few > more fixes. Most importantly, if you reuse the same figure, the old > event handlers will still attached preventing Axes objects from dieing > and causing interactive manipulation of the plots to be very sluggish. > Also, in terms of performance, I have found that switching to TkAgg > from GTKAgg was helpful. > > Also, I think the original code from John Porter was under a BSD > license. I am thinking of adding our names and the BSD license to the > top of each file to protect it while its not officially part of > matplotlib. What do you think? A trivial patch is attached to make proj3d.py work. I tried the examples and it looks great. However, it's pretty slow, at least on my machine. The plotting in sympy is much faster. Is there some way to make the mplot3d faster? Ondrej From b1a7c0b9c61257d3cbeda78d8aaffedae80396d4 Mon Sep 17 00:00:00 2001 From: Ondrej Certik Date: Sun, 8 Mar 2009 20:33:44 -0700 Subject: [PATCH] Make proj3d.py work by importing pylab --- proj3d.py |1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/proj3d.py b/proj3d.py index 4b39f10..e124e63 100644 --- a/proj3d.py +++ b/proj3d.py @@ -9,6 +9,7 @@ from matplotlib.collections import LineCollection from matplotlib.patches import Circle import numpy as np import numpy.linalg as linalg +import pylab def _hide_cross(a,b): """ -- 1.6.2 -- Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H___ Matplotlib-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
Re: [matplotlib-devel] Updating MPlot3D to a more recent matplotlib.
Hi, Thanks for the patch. How slow is it for you? I find it slow but quite usable. The main problem, I imagine, is that sympy is using OpenGL and thus your graphics card performs all the 3d -> 2d rendering whereas we do much of this in python/numpy. When I get a chance I am going to see if I can somewhat speed some of it up by adding an optional module to perform a few of these operations in C. Jon. On Sun, Mar 8, 2009 at 11:37 PM, Ondrej Certik wrote: > On Sun, Mar 8, 2009 at 7:45 PM, Jonathan Taylor > wrote: >> Hi Reinier, >> >> Awesome. Those plots are making me smile! I also agree with your >> refactoring and have applied your patch to my git repository. >> >> I agree with you concerning the sympy plotting routines. I think what >> we have here is quite flexible and does a very good job of replicating >> the equivalent functionality of MATLAB. I think it would be a huge >> effort trying to make 2D plots and 3D plots look consistent if another >> approach was taken. Indeed, this is a desirable characteristic. In >> addition, the code is actually very short and easy to maintain. Given >> that matplotlib has had trouble maintaining 3D code in the past, it >> might not be a good idea to switch to a more complicated codebase. >> >> You should grab some of my more recent changes as I have added a few >> more fixes. Most importantly, if you reuse the same figure, the old >> event handlers will still attached preventing Axes objects from dieing >> and causing interactive manipulation of the plots to be very sluggish. >> Also, in terms of performance, I have found that switching to TkAgg >> from GTKAgg was helpful. >> >> Also, I think the original code from John Porter was under a BSD >> license. I am thinking of adding our names and the BSD license to the >> top of each file to protect it while its not officially part of >> matplotlib. What do you think? > > A trivial patch is attached to make proj3d.py work. > > I tried the examples and it looks great. However, it's pretty slow, at > least on my machine. The plotting in sympy is much faster. Is there > some way to make the mplot3d faster? > > Ondrej > -- Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H ___ Matplotlib-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
Re: [matplotlib-devel] Updating MPlot3D to a more recent matplotlib.
On Sun, Mar 8, 2009 at 9:01 PM, Jonathan Taylor wrote: > Hi, > > Thanks for the patch. How slow is it for you? I find it slow but Well, when I use mouse to rotate the image, I can see that it lags behind. > quite usable. The main problem, I imagine, is that sympy is using > OpenGL and thus your graphics card performs all the 3d -> 2d rendering > whereas we do much of this in python/numpy. When I get a chance I am > going to see if I can somewhat speed some of it up by adding an > optional module to perform a few of these operations in C. Why not to use OpenGL as well? Ondrej -- Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H ___ Matplotlib-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
Re: [matplotlib-devel] Updating MPlot3D to a more recent matplotlib.
Just because we are using all the 2D drawing code to make the plots, which is why the 3d code is so small, maintainable and is visually consistent with 2D matplotlib. I believe that moving to OpenGL would require a substantial effort. J On Mon, Mar 9, 2009 at 12:17 AM, Ondrej Certik wrote: > On Sun, Mar 8, 2009 at 9:01 PM, Jonathan Taylor > wrote: >> Hi, >> >> Thanks for the patch. How slow is it for you? I find it slow but > > Well, when I use mouse to rotate the image, I can see that it lags behind. > >> quite usable. The main problem, I imagine, is that sympy is using >> OpenGL and thus your graphics card performs all the 3d -> 2d rendering >> whereas we do much of this in python/numpy. When I get a chance I am >> going to see if I can somewhat speed some of it up by adding an >> optional module to perform a few of these operations in C. > > Why not to use OpenGL as well? > > Ondrej > -- Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H ___ Matplotlib-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
