How widely used is Gnuplot these days? In my community (statistics), I haven't heard of anyone using it at all, just people using Matplotlib, ggplot2, or R base graphics.
I used Gnuplot five or ten years ago when I barely knew of anything else, but I don't have a sense of what its advantages are these days.
I use gnuplot heavily. It was good 20 years ago, and it's good today. The problem with people rewriting the wheel, is that every new wheel misses lots of features from the tool they're trying to replace, and does many things differently for no good reason. The efforts of the matlotlib, ggplot2 (and so on) would have been much more usefully spent contributing to gnuplot. Instead we have a large number of half-assed tools instead of 1 truly great one.
I wasn't using such things 20 years ago, but 10 years ago gnuplot was a crufty relic and a right pain in the bum to use for anything beyond the most basic of plots. Together with LaTeX, it was one of the things that made getting into CS research much more difficult than necessary. We need fewer barriers to entry in this field, not more.
I used to wonder how something so old could be so bad, and how newer projects like matplotlib managed to race ahead of it. I think the license explains a lot.
Edit: I should add - if gnuplot works for you, more power to you! Use what works. But I've been much happier since I discovered matplotlib in about 2006.
> Together with LaTeX, it was one of the things that made getting into CS research much more difficult than necessary
I'm sad you feel this way because I've really enjoyed working with GNUplot and Latex. Sure it has some warts but it generally works well.
I might have a test or benchmark that produces results, a GNUplot script to plot it and a Latex document it's embedded to. The whole process from source code to PDF is automated, change the benchmarks, run make and you have a report.
Sure there are more user friendly alternatives, or apps that work better in interactive mode, but imagine doing the workflow above using, say, Excel and Word. Or Matplotlib and Google Docs.
My experience is very different for LaTeX. The learning curve was huge, but it's totally paid off. I can't imagine writing papers in anything else.
10 years ago I was running experiments using Python code that wrote gnuplot scripts and LaTeX tables. Now I cut out the middle man, and the Python scripts make the graphs themselves.
This another demonstration how people can differ. A specific reason I liked gnuplot was the ease with which I could integrate it in my code, latex and xfig workflow. In fact that was perhaps the only thing that I liked about it.
I switched to matplotlib a few years after you, but I agree. Once I did, I never wanted to go back. I find matplotlib a pleasure to use, whereas I felt like I was always fighting gnuplot.
You can distribute the modifications in patches; i.e. what all the distros already do anyway.
As for matplotlib, there's no reason at all for it to be making plots. It just needed to provide a plotting interface to numpy, and the backend is almost irrelevant. They could EASILY have reused existing tools for the backend, and contributed upstream to fix whatever deficiencies they thought existed.
The whole point of matplotlib is interactivity and embedability in GUI toolkits.
There was nothing else that meet those criteria in Python at the time, and the other options were GUI toolkit specific.
Try finding something else that you can seamlessly embed in Tk, Gtk, Qt, Wx, etc with full interactivity that still creates publication quality static plots.
Nope. For reference the whole point of mpl was a numpy backed plotting library which was easy to switch to from matlab - hence the gross plt.xxx api for matlab compatibility. That it was relatively toolkit agnostic was a choice to help it's adoption, but as matlab interactivity was basically only hover showing values, so was mpls initially.
Gnuplot interface is a little dated, so custom visualisations are not so easy yet many disciplines today have a bunch of them. This should not have been a problem but it is because the gnuplot licence makes it unforkable and that discourages contributions. Contributions -- that would allow it to evolve, e.g into a base package (API) onto which other plotting packages could be built. I think this would be an irresistible allure since gnuplot is in my experience the fastest plotting package out there.
Good points, but the thing about matplotlib is it's Python so you have an integrated solution for scientific data analysis and visualization. Instead of having 10 different tools, you have one. Still, I find the plots on the gnuplotting site to be quite impressive -- at least as good as matplotlib. (I end up using both, gnuplot -- b/c of emacs integration -- and matplotlib.)
ggplot2 does things differently for several good reasons -- for example, by rebuilding the interface around the grammar of graphics, making construction and composition of plots much more coherent. http://vita.had.co.nz/papers/layered-grammar.pdf
Same here. I was a somewhat heavy user of gnuplot and Grace (http://plasma-gate.weizmann.ac.il/Grace/ , anybody remember that one, heh?), but what caused me to abandon them was that I needed much more than a plotting program. I made myself a python-based workflow/analysis environment, where I slurped in the results of simulations, did various munging on the data, some (somewhat custom) regression fits, generation of input data to other simulations etc. And yes, on-screen and later on publication quality plots too. matplotlib was a godsend here, really. Sure, I could have coded up some gnuplot/grace interface (say, generate input files and shelling out to the program), but, ugh, why?
I've used it for all the plots in my thesis. AFAIK, it's the only plotting library that does what gnuplot's epslatex terminal does: graphical elements are placed in an EPS file, while textual elements are placed as TeX, letting me have exactly the same fonts and sizes in the plots and in the rest of the thesis.
Every pixel is a datapoint. There are only 1.5M values in that render (3-tuples of time, frequency and intensity) but the resolution of that chart is pretty low. People casually do charts a hundred times larger. Then you start running into other problems, like sharing the images. Firefox won't display images wider/taller than 32k px for example.
I really like gnuplot as a nice, lightweight alternative to matplotlib. Plus, it has great emacs, org-mode, babel integration. gnuplotting is an impressive resource and I had no idea plots could get so sophisticated with different earth projections, for example.
I was wondering the exact same thing. I'm in condensed matter and gnuplot is seen as a relic more than anything else. Most people in my field use origin, matlab or python.
I used Gnuplot five or ten years ago when I barely knew of anything else, but I don't have a sense of what its advantages are these days.