Better colour palettes for gnuplot
Tags: software, research, howtos
gnuplot
is a great graphing utility that I
have been using for a long time now. In fact, many figures of my
diploma thesis were created using this tool. One of
the drawbacks of gnuplot
, however, is the lack of colour palettes that
are suitable for scientific publishing. As Kenneth
Moreland points out in his well-founded and entertaining paper about diverging colour maps for scientific visualization, there
are better choices than the default rainbow colour map.
Consequently, I tried adding a new colour palette to gnuplot
, starting
with Moreland’s cool-to-warm colour map. I simply used the RGB values
provided in the paper and normalized them. Then, I issued the following
gnuplot
command:
set palette defined(\
0 0.2314 0.2980 0.7529,\
0.03125 0.2667 0.3529 0.8000,\
0.0625 0.3020 0.4078 0.8431,\
0.09375 0.3412 0.4588 0.8824,\
0.125 0.3843 0.5098 0.9176,\
0.15625 0.4235 0.5569 0.9451,\
0.1875 0.4667 0.6039 0.9686,\
0.21875 0.5098 0.6471 0.9843,\
0.25 0.5529 0.6902 0.9961,\
0.28125 0.5961 0.7255 1.0000,\
0.3125 0.6392 0.7608 1.0000,\
0.34375 0.6824 0.7882 0.9922,\
0.375 0.7216 0.8157 0.9765,\
0.40625 0.7608 0.8353 0.9569,\
0.4375 0.8000 0.8510 0.9333,\
0.46875 0.8353 0.8588 0.9020,\
0.5 0.8667 0.8667 0.8667,\
0.53125 0.8980 0.8471 0.8196,\
0.5625 0.9255 0.8275 0.7725,\
0.59375 0.9451 0.8000 0.7255,\
0.625 0.9608 0.7686 0.6784,\
0.65625 0.9686 0.7333 0.6275,\
0.6875 0.9686 0.6941 0.5804,\
0.71875 0.9686 0.6510 0.5294,\
0.75 0.9569 0.6039 0.4824,\
0.78125 0.9451 0.5529 0.4353,\
0.8125 0.9255 0.4980 0.3882,\
0.84375 0.8980 0.4392 0.3451,\
0.875 0.8706 0.3765 0.3020,\
0.90625 0.8353 0.3137 0.2588,\
0.9375 0.7961 0.2431 0.2196,\
0.96875 0.7529 0.1569 0.1843,\
1 0.7059 0.0157 0.1490\
)
I used values between 0 and 1 in the first column because I was normalizing
my data file to this interval. More precisely, the data file I was
going to plot now contained 3 columns: Columns 1 and 2 contained the
coordinates of the points I was going to plot, while column 3 contained
a value from between 0 and 1. To force gnuplot
to use this third column for
choosing a colour from the palette defined above, I used the following
command:
plot "data.data" using 1:2:3 with points palette
That’s it. Unfortunately, there does not seem to be a way to permanently store these palettes. For now, I am simply including them in my data files. At least this has the benefit of making the plots reproduceable.