Thursday, March 28, 2013

What simple plotting software would you recommend?

I have a second year undergraduate student working with me on a research project.
He needs to start producing some simple plots of one dimensional graphs, of publication quality. The plots will be of comparable complexity/simplicity to the figure below.

What freeware would you recommend?
There is a long list of options on Wikipedia.

The main criteria are

-can be used on a PC and a Mac
-easy to learn and to use
The figure is from this paper.


  1. When I was a student, other students recommended GNU plot for my home computer. I tried it at least a couple of times, and threw my hands up in frustration. It was too difficult for my simple brain, and limited time/patience. However, possibly it's more user-friendly now.

    I'm surprised students can't use a university licence of Origen (Origin? Is it a 3rd century theologian or the beginning of something or neither?), matlab/illustrator, or something else that's paid for. Is this the system? Doesn't seem right.

  2. I think of several options. All are available on MacOS/Win/Linux
    1) gnuplot . Being a bit advanced (requires scripting) it produces very nice looking figures. There are good examples available at
    2) qtiplot . It's a more or less freeware origin.
    3) python and matplotlib. This is advanced and certainly helpful in testing graphs, but production quality requires tuning. It is though a very powerful tool.
    4) Not free, but might be available: Mathematica and/or Matlab. They have good very good plotting capabilities, and if the license is available at the university - that's a definite choice.

  3. If the student is familiar with Python and Matlab, then the matplotlib library for Python makes very good plots in a syntax that is similar to Matlab. The downside is that Python can take some getting used to if he/she doesn't have much programming experience.

    I've found Numpy and matplotlib for Python to be very good and free tools for numerical analysis and plotting. Furthermore, the Python XY package couples many, many different Python tools together to make it easier for scientists to start using Python.

    You can find the Python XY site here:

    If choose to use Python for more than graphing, then I also suggest the book Python Scripting for Computational Science by Langtangen. It does a very good job at teaching scientific numerics with Python through examples and integrates Python with other scientific programming languages, like C and Fortran.

  4. I use Veusz often now and like the quality of the figures it generates. Its also free, although the documentation isn't great. Its available at:

  5. It's not free but it is inexpensive for students. It is cross-platform and easy to use and makes beautiful figs and is powerful: IGOR pro by Wavemetrics.

  6. i use gnuplot and am a little surprised people say it's advanced and/or complicated. for example, the standard plot command for data from a file is
    plot 'file.dat'
    if you do write a script (no you dont have to), then it's load 'plotscript.plt'

    here people use xmgrace
    mathematica i have used but find it more onerous

  7. Free software would be good, but who has the time? In my experience, you will have to write your own software if you want it to be free. Most Linux developers are hopeless at making user friendly software, and ignorant of how much better Windows software is. (It's even impossible to play music smoothly on Linux.)

    Octave is the closest free thing to MATLAB and is alright, but I remember the Windows version being crap. Python is a waste of time.

  8. I agree with Andrey. However, Qtiplot is effectively free for linux user only. Windows and Mac user have to pay for binaries maintenance or compile it themselves which is not easy on such platforms. The individual licence is rather cheap though (30 euros for 1 year support and 2 platforms). As a linux user, I use it and find it very good and user friendly.

    P.S. I also pay for the support as a contribution to a good open source software.

  9. Not that I am a big fan of it, but given its almost universal availability, Excel is not too bad.

  10. Currently I am using Ipy, which is pretty much what kmdouglass recommended. It is pretty easy to use and learn as you go. I am a second year undergraduate. My adviser recommended I get the academic licensed version, which is easy to get as well.

  11. CoPlot is free for students and might be worth a try.

  12. Thanks for all the feedback.
    Based on it my student decided to give gnuplot a try. It seems to have worked out well.

  13. I suggest MagicPlot Student, it is freeware (howether not opensource). And it runs on all operating systems. Have a try:
    More features are supported in paid version (~100 euros) but free version is enough to create something like this figure.

  14. GNUPlot is extremely powerful, but requires patient fiddling to get it to produce something publication worthy.
    A key thing I have found is to take a programmatic approach - writing .gpt scripts with a full set of commands, which automatically produce the .PNG for talks and .EPS for Latex.

    Over recent years the Blog at Gnuplotting has been the best place to look for examples of setting up a good workflow, and producing high quality graphics.