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.
gnuplot
starts interactive Gnuplot console
plot sin(x) # use plot for 2d plots splot sin(x)*sin(y) # use splot for 3d plots plot 'spectrum.energ' using 1:4 # plot column 1 as x and column 4 as y replot 'spectrum.ener' using 1:($3+$5) title 'Total energy' set ylabel "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.
- Open the file in a text editor. What quantities does it contain?
- Plot the kinetic energy and potential energy versus time.
- Add the sum of kinetic and potential energy to the plot. In which type of ensemble was this MD simulation performed?
- Label the axes of the plot with appropriate quantities and units.
Now we need to save the graph in order to be able to use . 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. Then we do:
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
- Create a second plot, this time of temperature versus time.
- Label axes of the plot with appropriate units.
- Use Gnuplot's fitting functionality to extract the average temperature.