Almost all scientists need to plot at some point. When preparing for publication, journals can be extremely precise about their requirements that can really stretch a plotting package (Physical Review E gets my vote for giving the author the most painful experience on this front). Yet I still struggle to find the perfect package. Recent licence changes at my home institution means I have lost access to one of my preferred packages. So this has led me to think about some of the different plotting packages that I am aware of, though some I have had next to no experience.
The spreadsheets are the easiest to use. I tend to use them for instant data analysis and for playing with ideas. For serious work I find they fall very short. Nothing else is particularly easy to learn so I suggest you just have to pick one.
Cost and licence availability are therefore the biggest influence on my choice. I tend to use packages that I can have on all my computers: home, portable, work. Also it is good if my students can use these packages as then I can help them. This means free and preferably open source software is what I tend to use. Even when there is a licence at Imperial they can be restrictive on who can have it and how many copies. In addition institutions can drop licences at any time. I currently use R for the statistics and general data analysis so I have had to use its plotting anyway. Its a bit painful to learn but it does what I want now. Gnuplot makes for a good standalone package if you don’t need the features of the other packages. Matlab has the best interface I know for changing the look of a plot but I have never really used Matlab and I can’t have it on all my machines.
- Gnuplot: basically a plotting programme but can do fits and knows about mathematical functions. Free though not open source. Command line driven i.e. needs scripts. Well established so many online examples. Can do very complicated plots. Mathematical formulae can be included in plots using LaTeX style notation.
- Origin: This is a commercial statistics package. Imperial Physics Dept may have a licence. Looks much more like excel so this is the easiest package to use when manipulating data – the others work through the command line. Plots can also be altered using WYSIWYG GUI interface much like Matlab (though not as nice as MatLab). I have not used this.
- R Statistics package: analysing statistics is its prime use. Produces good plots and these are easily extended with standard libraries. Command line driven, very well established so lots of help online and many books in library. Its heritage can make it difficult to learn – it is not like C++/Java/Python. Main advantage is that it is free, open source and cross platform. Mathematical formulae can be included in plots. See my page on R statistics pacake for some of the ways I get R to do my plots but also see the R Plots Gallery.
- Matlab: Numerical analysis heritage with excellent plots. Language is similar to R so its not C++/Java/Python and tricky to learn. Lots of help in books and online. Big advantage is that it does offer considerable chances to manipulate the figures using WYSIWYG GUI interface e.g. change normal/log axes, change fonts of characters so it is very useful for changing a plot for publication.
- Octave: Open source free Matlab like package but I have not used this.
- Mathematica: primarily a symbolic manipulation programme and this heritage does not make it as easy to use for plots. It does have a very wide range of other abilities such as numerical solving, graph/network packages etc. Its graphics are considered excellent. The software is very expensive, though it may be cheap enough or free via an institutional licence. Command line driven.
- Maple: as Mathematica. Graphics generally considered not to be as good but certainly can be high quality.
- Spreadsheets: Excel or libre/open office. OK for quick look and for easy data manipulation but not for serious work as plot output is just not good enough for most scientific work. At least the libre/open office packages produce pdf and eps.