Turn x-y-z formatted data into a grid of z, for Gnuplot
Posted: October 15, 2015
Categories: hack, gnuplot, linux
If it happens that you want to create a surface in Gnuplot, and you have your data formatted this way:
x1 y1 value1 x1 y2 value1 x2 y1 value3 x2 y2 value4
You will have to turn it into such a grid:
value1 value2 value3 value4
in order for Gnuplot to plot it easily (that is, without you describing your data format and telling which fields to extract).
To do so, you can use a combination of
cut and the
xargs -L <N>
cut will extract the right column, the third one in our
xargs -L 2 will group lines by 2. Feeding this to
will display our blocks and add a newline between them. Naturally,
replace 2 by the width of the desired grid.
You should obtain something alike:
cat input-file | cut -d' ' -f3 | xargs -L 6 echo > output-file
output-file is ready to represent a Gnuplot surface.
My 2 cents! Hope that helps.