# Open SourceMolecular Dynamics

### Site Tools

exercises:2015_uzh_molsim:gnuplot

# Differences

This shows you the differences between two versions of the page.

 — exercises:2015_uzh_molsim:gnuplot [2015/04/23 12:20] (current) Line 1: Line 1: + ====== 2d plotting with Gnuplot ====== + + [[http://​www.gnuplot.info/​|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 [[http://​www.gnuplot.info/​documentation.html|documentation]]. + + You are free to choose a different plotting program for your analysis ([[http://​matplotlib.org/​|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. + + <​note>​**TASK 1** + + - 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. + + ​ + + 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 + ​ + + + Gnuplot is not just a plotting utility, it can also perform fits. + 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 + ​ + + + <​note>​**TASK 2** + + - Create a second plot, this time of temperature versus simulation time. + - Label axes of the plot with appropriate units. + - Use Gnuplot'​s fitting functionality to extract the //average// temperature. + + ​ + + Finally, once you have figured out which commands you need to create the plot you want, it is a good idea to write these commands to a file, say ''​script.gp''​. This has the advantage that gnuplot can re-create your graph in an instant. On the bash terminal type: + + gnuplot script.gp ​  # let gnuplot perform the commands in '​script.gp'​ + gnuplot ​            # alternative:​ start gnuplot + load '​script.gp' ​   #              and load script from within gnuplot + ​ + This makes it very quick and easy to change details in the plot at a later point in time. + Proficient gnuplot users will often start by writing the file, run it through gnuplot and then adjust the remaining details.