Gnuplot: условный график ($2 == 15 ? $2 : '1/0') с линиями

Мои данные выглядят следующим образом:

10:15:8:6.06000000:
10:15:2:19.03400000:
10:20:8:63.50600000:
10:20:2:24.71800000:
10:25:8:33.26200000:
10:30:8:508.23400000:
20:15:8:60.06300000:
20:15:2:278.63100000:
20:20:8:561.18000000:
20:20:2:215.46600000:
20:25:8:793.36000000:
20:25:2:2347.52900000:
20:30:8:5124.98700000:
20:30:2:447.41000000:
(...)

Я хочу построить график «линии и точки» с 1 долларом на оси X и 8 различными линиями, представляющими каждую комбинацию (2 доллара, 3 доллара). ), например: (15,8), (15,2), ...

Чтобы сделать такой условный график, люди предлагают следующее:

plot 'mydata.dat'  using 1:($2==15 && $3==8 ? $4 : 1/0) with  linespoints 'v=15, l=8'

Однако gnuplot не может провести линию через эти точки, так как "1/0" недействительны и вставлены для замены каждой точки данных, для которой ($2==15 && $3==8) не выполняется.

Кроме того, предложение «повторно построить последнюю точку данных» вместо использования «1/0» не работает, так как я использую условные операторы для двух переменных.

Действительно ли нет способа заставить gnuplot игнорировать запись в файле вместо того, чтобы отображать неверную точку данных «1/0»? Обратите внимание, что замена его на «NaN» дает тот же результат.

На данный момент я предварительно обрабатываю все свои файлы данных (путем их разделения на отдельные файлы, которые затем можно отобразить на одном графике), используя bash и awk, но это далеко не идеально...

Спасибо. !

22
задан Bas van Schaik 25 June 2012 в 10:35
поделиться