I have been using matplotlib for my plotting, and have been extremely pleased thus far. In addition to creating plots that just plain look nice, there are several features I find compelling:
- The gallery gives a listing of many different plots that can be generated, along with the code that generated the plot. Whenever I'm trying something new, I'll skim through there to see if an example already exists.
- The basemap package may not be useful for everyone, but just about everything we do involves some sort of geo-referencing. It's great to be able to switch map projections, regions, etc. with minimal code.
- It plays well with other packages, producing output in may different formats. I've used it with Django as well to render custom plots directly into the HTTP response.
I've found most of the documentation very helpful, and it seems to be under active development. Combine it with IPython and you have yourself an excellent environment for both interactive data analysis and also publication-quality graphics.
As mentioned, it includes a pylab
mode where the plotting commands are similar to MATLAB. I've found this helpful in getting started, but being able to explore a little deeper and deal with the OO interface has been useful as well.
Edit: Since you asked about cross-platform, I've used this package personally on an IBM Power6 (running AIX), a Cray XT5, and Linux and Windows machines. Although I haven't used it personally, OS X is also supported.