Software for Making Plots

Posted on Dec 21, 2023

Now in my first journal paper (and this is back when you would get author’s copies, I still have a stack of like 20 of these; you could send them to colleagues, I guess) the plots were EPS exported from Excel. While it was an upgrade from the screenshots I took for my thesis, it doesn’t look great either way. So how do you make plots and graphics for your papers? Here are some suggestions and unfortunately a lot of these don’t have, like, the greatest discoverability in terms of how to use them, but I think it’s worth it to get to know some of them and then you can look things up if you need to.

First of all, I’m not even going to make the argument for Latex – that’s a given – and a lot of what makes other tools good is that they integrate well with Latex.

For a simple plot here or there, Excel and Numbers are actually fine, as far as it goes – though please find a way to export in a vector format – but it’s a bit too fiddly for my taste if you’re doing anything serious.

For a while there I used gnuplot on the commandline: it reads data from CSV files and there is this little configuration language to describe how it should construct the plot; I’d export as PDF and then \includegraphics in Latex. The good thing is you can use one configuration file to plot multiple datasets in the same style: you’d have a batch script to “compile” all of your graphics. That’s better than taking screenshots, I guess, but it’s still kind of annoying, right, because now your PDFs can be out of date with the raw data, and: these PDFs shouldn’t really be in your version control system because they’re derived files, so now it influences everybody’s build process. Also, configuring fonts was a bit of pain in my experience.

Nowadays I mostly use pgfplots, which is basically “gnuplot, but as a Latex package.” (It’s based on TikZ, which we’re bound to talk about some other time.) It’s not great for compile times, but I love how everything happens within Latex so you get all the right fonts at the right scale and everything. The only downside, for me, is that the compile errors tend to utterly incomprehensible. The documentation isn’t great either so I’ll end up guessing how something works and it just blows up half of the time. But it looks great when it works and the build process is nice.

Finally – and I’m not sure I can actually recommend spending money on this, but if you happen to have it: Adobe Illustrator can open PDF files. It’s a bit hit-or-miss whether it opens as anything useful or if it decided that half of the text is now funny, but I have, on more than one occasion, used Illustrator to touch up the graphic design of some plots made in gnuplot or Excel.