Gnuplot: как заставить gnuplot продолжать считать пустой столбец? - PullRequest
0 голосов
/ 28 ноября 2018

Я пытаюсь нарисовать уровень схемы распада, используя данные ниже:

xl  E      elabel    Xa   E1    Xa   E2
1   500     0       5.2 321.32  5.2 249.67          
3   500     0       5.5 321.32  5.5 112.95  
5   321.32  0       5.8 321.32  5.8 0
8.5 321.32  321.32  
5   249.67  0       6.2 249.67  6.2 112.96
8.5 249.67  249.67  
5   112.95 
8.5 112.95  112.95
5   0
8.5 0   0

Я строю (gnuplot v 5.2) данные, используя это:

plot 'decay.txt'u 1:2 w l lc rgb 'black',\                            
     ''u 1:2:3 w labels right offset 0,0.8,                                
     ''u 4:5:($6-$4):($7-$5) w vec

Результатпочти так, как я хотел:

decay.png

кроме одной вещи, метка 0 в левом верхнем углу горизонтальной линии должна быть удалена.Я попытался удалить значение 0 из столбца elabel данных (например, col: elabel, строки 1, 3 и 5) так же, как в строке 7 (уровень 112.95), но тогда он не выдаст стрелки, как это сделает GNU.читать столбец Ха как 3-й столбец, а не 4-й.

Есть ли способ заставить gnuplot вести подсчет столбца, даже если в нем нет данных?

1 Ответ

0 голосов
/ 28 ноября 2018

Чтобы получить такой же (или похожий) результат (протестирован в guplot 5.2.5), то есть разные уровни, не связанные со строками, мне нужно ввести в данные пустые строки.

Взятие вашегоданные (столбцы данных ниже разделены табуляцией):

# decay.txt
xl  E   elabel  Xa  E1  Xa  E2
1   500     5.2 321.32  5.2 249.67
3   500     5.5 321.32  5.5 112.95

5   321.32      5.8 321.32  5.8 0
8.5 321.32  321.32  

5   249.67      6.2 249.67  6.2 112.96
8.5 249.67  249.67  

5   112.95  
8.5 112.95  112.95

5   0
8.5 0   0
# end of data

и следующий код:

# start code
reset session
set datafile separator "\t"
set yrange[0:600]
plot 'decay.txt' u 1:2 w l lc rgb 'black',\
     '' u 1:2:3 w labels right offset 0,0.8,\
     '' u 4:5:($6-$4):($7-$5) w vec
# end of code

приводит к чему-то вроде:

enter image description here

...