# Open SourceMolecular Dynamics

### Sidebar

#### For Developers

exercises:2014_uzh_molsim:gnuplot

This is an old revision of the document!

# 2d plotting with Gnuplot

Gnuplot is a command-line driven graphing utility that is available for many different operating systems.

Gnuplot is a powerful program that can be used to generate publication-quality figures. Here, we are going to introduce only a small subset of its features. If you are interested to learn more, have a look to the documentation.

You are free to choose a different plotting program for your analysis (matplotlib might e.g. be an interesting alternative). However, Gnuplot is very versatile, can get the job done quickly and is still used by many computational scientists today.

gnuplot starts the interactive Gnuplot console. This are some of the commands we are going to need:

plot sin(x)                                # use plot for 2d plots
splot sin(x)*sin(y)                        # use splot for 3d plots
plot 'spectrum.ener' using 1:4            # plot column 1 as x and column 4 as y
replot 'spectrum.ener' using 1:($3+$5) title 'Total energy'
set xlabel "time steps"
set xrange [0:10]
replot                                     # redo the plot with current settings
set terminal x11 enhanced font "arial,20"  # increase font size
help <command>                             # gnuplot has a very useful integrated help
exit                                       # leave gnuplot (loosing unsaved graphs)

Now you are ready to plot some actual data. spectrum.ener in the intro folder contains results from a molecular dynamics simulation.

1. Open the file in a text editor. What quantities does it contain?
2. Plot the kinetic energy and potential energy versus time.
3. Add the sum of kinetic and potential energy to the plot. In which type of ensemble was this MD simulation performed?
4. Label the axes of the plot with appropriate quantities and units.

Later you will want to save your graphs in order to use them in your reports. This is done as follows:

set terminal png              # we want to create a .png image
set output "graph.png"        # with filename "graph.png"
replot                        # plot with current settings, directly into file "graph.png"
set terminal x11              # switch back to plotting on screen

Finally, we want to use Gnuplot's fitting functionality. Say, we have a data set data.dat, which contains $x$ in the first column and some computed $f(x)$ in the second column. We want to fit a function $f(x)=ax^2$ to this data set. In Gnuplot, this would be achieved by:

f(x) = a*x*x                   # Define function to be fitted
a = 1                          # initial guess for a
fit f(x) "data.dat" using 0:1 via a