Я пытаюсь построить многоцветный файл, используя скрипт gnuplot.Я делаю это как
plot "100.dat" u ($1-CONS):($2*$3) w l lt 4 ,
"200.dat" u ($1-CONS):($2*$3) w l lt 2 ,
"300.dat" u ($1-CONS):($2*$3) w l lt 1
, где CONS - моя переменная, определенная в верхней части файла.
Мой набор значений xrange равен [-0.2: 0.2], тогда как данные в масштабе находятся за пределами этогоscale.
То, что я хочу захватить, - это (в форме цикла для нескольких файлов): максимальное значение выше трех графиков с отрицательной и положительной сторон и соответствующее значение столбца 1 в моем xrange для обоих максимумов.
в сценарии оболочки, я могу сделать это легко, но я сталкиваюсь с проблемой при определении в моем gnuscript, мой сценарий оболочки ниже
for i in 100.0000 200.0000 200.0000
do
grep $i data.dat > $i.dat
awk '{print ($1-CONS), ($2*$3)}' $i.dat | awk '{ if($1 <= 0.2 && $1 >= 0.0) { print }}' > $i.p2.dat ; awk 'BEGIN {min=1000000; max=0;}; { if($2<min && $2 != "") min = $2; if($2>max && $2 != "") max = $2; } END {print min, max}' $i.p2.dat | awk '{print $2}' > $i.p2Max.dat ; PMAX=$(cat $i.p2Max.dat) ; grep "$PMAX" $i.p2.dat | tail -n 1 >> MAX.dat
awk '{print ($1-CONS), ($2*$3)}' $i.dat | awk '{ if($1 <= 0.0 && $1 >= -0.2) { print }}' > $i.mi.dat ; awk 'BEGIN {min=1000000; max=0;}; { if($2<min && $2 != "") min = $2; if($2>max && $2 != "") max = $2; } END {print min, max}' $i.mi.dat | awk '{print $2}' > $i.mi_Max.dat ; N_MAX=$(cat $i.mi_Max.dat) ; grep "$N_MAX" $i.mi.dat | tail -n 1 >> MAX.dat
done
Я ищу простой сценарий, который можно использовать вскрипт gnuplot в форме цикла, так что если у меня есть несколько файлов данных, и мне нужно собрать максимум два столбца (с обеих сторон от нуля), то он сохранит максимальное значение столбца два относительно значения столбца 1 отдельнодля отрицательной и положительной шкалы.
Я бы хотел посмотреть, можно ли это сделать с помощью цикла, чтобы мне не нужно было писать все строки подряд.