gnuplot conditional plotting: plot col A:col B if col C == x

jitihsk picture jitihsk · Jul 3, 2011 · Viewed 53.3k times · Source

How can I do this in gnuplot:

plot "test.csv" using 1:2 if value_in_column_3 == 80.0

It should only select those rows where column 3 == 80.0 and ignore all other rows (It should not plot a 0 for the other rows, simply ignore them)

Thanks in advance.

Answer

chl picture chl · Jul 3, 2011

Consider the following dataset (1.dat),

1 0.8 0
2 0.6 0
3 0.9 1
4 1.1 0
5 0.7 0
6 0.6 1

where we want to plot the first two columns only when the third one equals zero. Then you can try this:

plot '1.dat' using 1:($3==0?$2:1/0)

(Credit to markjoe on Gnuplot mailing-list.)