Language and plotting questions

I have been doing a lot of reading on here lately and checking out some of the tutorials (OpenCL and Cocoa) and have some questions. I am a first year grad student and want to do my research in numerical solutions to PDEs using OpenCL. After seeing some of the cool stuff you guys have done I have made it my goal to learn Objective-C and Cocoa. I am also leaning towards learning to plot data with Python (I already know the language) using matplotlib. I have read some of the posts on recommended graphing software but what do most of you guys actually use in your research? The matplotlib in Python seems pretty flexible. Any thoughts on this? Do you guys recommend any books for learning this material?

I would like to get to where some of you guys are at with regards to developing software for OSX for your research and am looking for a push in the right direction. Thanks

Jeff

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

I am quite pleased with matplotlib

I was introduced to Python in a three-day tutorial class this summer. Since then, I have found that Python has greatly reduced the amount of work I've had to do, and allows me to automate a lot more tasks--which will be helpful not only for me, but others who will be able to use the scripts in the future.

I think there is one important advantage available from using matplotlib, and other text-based approaches, over graphical approaches: traceability. You don't have to worry about being able to reproduce all the features of the graphs the next time you need it--you just run the Python script or commands again, and you get the same graph.

I also like the extended control over the plotting environment. The ability to specify subregions so precisely, and control where axes do and do not appear, and so on, is quite helpful, particularly if you want to go beyond the traditional single "x versus y" plot.

If you're going to do 3D plotting or things like that, other packages may be more useful; but they're also available.

3D plotting

What packages would you recommend for 3D plotting?

matplotlib + mplot3d or mayavi2

I use happily matplotlib for all my 2D plotting.

For 3D I suggest mplot3D (mplot3d tutorial). It is included in matplotlib and allows simple 3D plotting.

For more complex 3D needs, I suggest mayavi2 that uses VTK. A simple scripting interface is available mlab.

All of this is available through fink.

Medit

I've used Medit (http://www.ann.jussieu.fr/~frey/software.html) for some 2D/3D plotting. If you're going to solve PDEs on unstructured grids then this application would be quite useful.

GNUPlot

I'm using Python more and more these days as I'm migrating away from MATLAB for new work. However I find that GNUPlot is very flexible for plotting compared to some of the python-based plotting solutions I've tried, so I get Python to write out the GNUPlot files for the result sets I need.

R and CorePlot

Speaking of plotting libraries on MacResearch must be accompanied by mentioning CorePlot. ;) It's not yet as complete (feature-wise) as the other libraries, but has a very extensible structure, is based on CoreGraphics (means it's able to support very advanced graphics) and is actively maintained. Once you get the hang of Objective-C it may be worth your while to check it out.

I myself haven't used CorePlot for anything else than some simple graphs, mostly due to lack of time to get into it. I still use R for my graphing needs.