Gnuplot is a command-line driven open-source plotting utility, with many
features such as fitting, and 3D plotting available. You can install it on
ubuntu systems by typing
sudo apt install gnuplot. The homepage is
gnuplot.sourceforge.net, and a detailed
manual for the latest release is also
available. Gnuplot is
also readily scriptable. This allows you, for example, to incorporate it into a
bash script to automatically produce a file containing a plot of your results
after your calculation has finished.
To open gnuplot, simply type
gnuplot in a terminal. You will see some
information regarding the version of gnuplot that has started, and finally a
gnuplot>. You can enter various commands here to generate
and save plots.
- This will plot the sin function. The x values will range from -10 to +10
by default and the y range will be automatically chosen to be -1 to 1.
plot cos(x), x + 0.1*x**2
- This will plot the cosine function in addition to the function
- Plots the values listed in the example file
set title "My Results"
- This sets a title for the plot.
set xrange [-1:1]
- Sets the range of the x-axis in the plot.
yrange can be set similarly.
set xlabel "Position (pm)"
- Sets the label for the x-axis in the plot.
ylabel can be set similarly.
- After changing the plot by e.g. adding a title, it is necessary to redraw
the output plot. The
replot command repeats the last plot command.
Outputing to a file
To output a plot to for example a pdf file, you need to set the gnuplot “terminal” appropriately (the terminal setting determines the type of output generated by gnuplot), set an output filename, and redraw the plot. Typically many different terminals are available which allow ouput to e.g. postscript, png, gif formats.
For example, to save a default plot of a sin function to a pdf:
set terminal pdf
set output "sin_plot.pdf"
We can also define and fit functions within gnuplot. For example, to fit a
quadratic to the example data in
plot/example.dat we can do the following
(here I assume gnuplot has been started from within the
- This defines the function in terms of a set of parameters.
fit f(x) "example.dat" via a,b,c
- This will do a least squares fit, and output the final parameter values along with standard errors.
- Note if no initial values for the parameters are specified, gnuplot will
start each at 1. You can specify initial values before running the
fitcommand as e.g.
a=-1;b=-1;c=0.5. It is particularly important to give good initial guesses when fitting non-polynomial functions.
plot "example.dat", f(x)
- This will generate a plot of the data points together with the fit curve. You can also use this to try to find good initial guesses for parameters manually when fitting more complex functions.
- A summary of the fit results is automatically saved in the file
One can create scripts as a list of gnuplot commands entered in the same way as
would be done manually. Then
gnuplot scriptname will execute the script and
exit. An example script to perform a quadratic to the data in
generate a pdf plot of the data compared with the fit is given in
f(x)=a+b*x+c*x**2 a=-1;b=-1;c=0.5; fit f(x) "example.dat" via a,b,c set title "Example Gnuplot Plot" set xlabel "Position (Bohr)" set ylabel "Energy (Hartree)" set term pdf set output "example-gp.pdf" plot "example.dat" with lines title "Results", f(x) title "Quadratic fit"
Try entering the
plot directory and running this as
You will see information on the fit output directly to the terminal, and the
example-gp.pdf will be generated. You can view the pdf
evince document viewer application that is installed by default on