Many incoming grad students rely on Microsoft Excel to do basic data manipulations and graphing. However, even a quick survey of published, peer reviewed research articles will show that Excel is rarely used to generate publication-quality figures.
There are several common, free softwares available which are capable of generating high quality graphics. Some of the most common programs are python, R, and gnuplot. Many of these examples of scientific artwork were generated with gnuplot. The following descriptions are in no way expected to be sufficient for someone to begin using these programs. If you are working on learning any of these tools and need some help, consider asking a fellow grad student for help if you are really stuck.
What is common to these 3 tools is that they are code based, meaning that instead of clicking around with your computer mouse (like you’re used to in Excel), these tools make plots from sets of input commands or lines of input computer code. While tools like this admittedly have a steeper learning curve than GUI-based tools (like Excel), they offer:
- Much more control over design aspects (think line color, line thickness, tick marks, etc.)
- Higher quality (easy control of output resolution to meet publisher’s requirements)
- Reproducibility (others with your same code can produce the same graph), and
- Introduction to other data manipulation/processing tools.
Python/Jupyter notebooks
In reality, python is a full-blown programming language. But python also provides access to several different “packages” which can be added into a line/chunk of code to enable plot generation. The python language and associated/specific application packages can be downloaded freely here (as well as many other places). Many people learn to use python to make graphs by starting out coding inside “jupyter notebooks,” which software is contained in the above link. (Jupyter notebooks behave something like a Word document that can also contain functional lines computer code. It can contain your plain-[English] notes (hence, “notebook”) and also the python code needed to generate graphs. Jupyter stands for JUlia, PYThon, and R– referring to the 3 programming languages that the “jupyter notebook” [software] can be used for.)
R
R is another programming language that can be used to manipulate data and create plots. As such, you will also need some “environment” in which to run the R language and its associated tools/”packages.” Fortunately, R is free, and the above link for downloading python and jupyter notebooks also includes R by default. R can also be run in jupyter notebooks, so downloading the software from that link gives you access to both R and python.
… ggplot… plotly… interactive plots
gnuplot
Of the 3 plot-capable programs listed on this page, gnuplot (pronounced “new-plot,” after the gnu (animal), see picture) is the only one that is not a full programming language. At the time of writing, the newest versions of gnuplot for free download were being stored here. Although gnuplot is not a full programming language, it still accepts lines of computer code, albeit in the gnuplot syntax (as opposed to the R or python languages, which have their own syntax). The preferred way to use gnuplot is to create a simple text file that contains all the necessary gnuplot commands to generate the plot you wish. This type of file is called a “script,” and could also contain the name of a separate file in which the data is held. Numerous examples of plottable data and the associated gnuplot scripts may be found here.