Plotting data like measurement results is probably the most used method of plotting in gnuplot. It works basically like the plotting of functions. But in this case we need a data file and some commands to manipulate the data. First, we will start with the basic plotting of simple data and thereafter look at the plotting of data with errors.
At first we will have a look at a data file. This can be a text file containing the datapoints as columns.
# plotting_data1.dat # X Y 1 2 2 3 3 2 4 1
You can plot these by writing
set style line 1 lc rgb '#0060ad' lt 1 lw 2 pt 7 ps 1.5 # --- blue plot 'plotting_data1.dat' with linespoints ls 1
Here we also set the point type (pt) and the point size (ps) to use. For
the available point styles you can have a look at the
The resulting plot is presented in Fig. 1.
If you have data points that aren’t continuous you can simply tell gnuplot this by inserting one blank line between the data.
# plotting_data2.dat # X Y 1 2 2 3 3 2 4 1
If you want to use another color for the second data and still want to have it in the same file, you can insert a second blank line. You then have to index the data block starting by 0.
# plotting_data3.dat # First data block (index 0) # X Y 1 2 2 3 # Second index block (index 1) # X Y 3 2 4 1
set style line 1 lc rgb '#0060ad' lt 1 lw 2 pt 7 ps 1.5 # --- blue set style line 2 lc rgb '#dd181f' lt 1 lw 2 pt 5 ps 1.5 # --- red plot 'plotting-data3.dat' index 0 with linespoints ls 1, \ '' index 1 with linespoints ls 2
As you can see, we have added another color and point type and plotted
the two datasets by using index and separated the plots by a comma. To
reuse the last filename we can just type
''. The result is shown in
Data with errors
Another common task is to plot data with errorbars. Therefore we use the
battery.dat file from
gnuplots demo files that contains data about the dependence of the power
of the battery on the resistance.
Here we want not only to plot the data, but also show the error for the y value (the data is stored in the format: x, y, xerror, yerror).
set xrange [-2:52] set yrange [0:0.12] set format y '%.0s' plot 'battery.dat' using 1:2:4 w yerrorbars ls 1, \ '' using 1:2 w lines ls 1
The power values are stored in Watt in the data file, but only has
values lower than 1. That’s why we want to use mW as unit. Therefore we
set the format option to tell gnuplot to use “mantissa to base of
current logscale”, see gnuplot’s
documentation. Then in the
using tells gnuplot which columns from the data file it
should use. Since we want to plot the y errors and the data we need
three columns in the first line of the plot command. Using the
yerrorbars plotting style it is not possible to combine the points by
a line. Therefore we add a second line to the plot command to combine
the points with a line. This will give us the resulting Fig. 4.
We can avoid the
set format command in the last plot by directly
manipulating the input data:
set yrange [0:120] plot 'battery.dat' using 1:($2*1000):($4*1000) w yerrorbars ls 1
For achieving this we have to set brackets around the expression and
reference the column data with
In the last plot we will add theoretical data and a legend to the graph:
# Legend set key at 50,112 # Therotecial curve P(x) = 1.53**2 * x/(5.67+x)**2 * 1000 plot 'battery.dat' using 1:($2*1000):($4*1000) \ title 'Power' w yerrorbars ls 2, \ P(x) title 'Theory' w lines ls 1
Generally the legend is enabled by the
set key command. In addition to
that, its position can be specified by
set key top left etc. You can
also set it directly to one point as we have done it here in order to
have enough space between the key and the tics. The
within the plot command specifies the text to be displayed in the