Добавление точек в шаговый график GNUplot - PullRequest
2 голосов
/ 18 января 2020


У меня есть вопрос. Я использую GNUplot со следующим кодом:

set terminal png
set title 'Assembly ID A047457'
set key autotitle columnhead
set xlabel 'axial coordinate [cm]'
set ylabel 'signal intensity [n/cm]'
set output "output/assembly_001.png"
plot  'data_gnuplot/001.txt' with steps notitle

У меня хороший вывод, но я хочу добавить точки в углах, я не знаю, как их добавить. Я могу добавить точку только в левые углы. Можете ли вы мне помочь, пожалуйста?

This is what I need

This is my output

И мой файл данных:

A047457
0 0.1942
5 0.3426
10 0.528
20 0.642
34 0.858
53 0.938
68 0.947
84 1.041
96 0.912
118 0.85
179 0.585
183 0.498
185 0.473
186 0.433
189 0.348
195 0.266
196 0.202
198 0.142
199 0.098

1 Ответ

2 голосов
/ 18 января 2020

Если я правильно понимаю ваш вопрос, вы хотите расположить точки по всем углам.

Просто нанесите на график данные еще раз со значением y, «задержанным» на единицу. Вы можете сделать это с помощью серийной оценки (отметьте help operators binary). В третьей команде построения (y0=y1,y1=$2,y0) вы запускаете y1=NaN, затем y0=y1, затем y2=$2 (текущее значение y ваших данных), но на самом деле y0 выводится на график. Таким образом, каждое значение y задерживается на единицу.

Код:

### placing point at all corners of a step plot
reset session

$Data <<EOD
A047457
0 0.1942
5 0.3426
10 0.528
20 0.642
34 0.858
53 0.938
68 0.947
84 1.041
96 0.912
118 0.85
179 0.585
183 0.498
185 0.473
186 0.433
189 0.348
195 0.266
196 0.202
198 0.142
199 0.098
EOD

y1=NaN
plot $Data u 1:2 w steps lw 2 lc rgb "red" notitle, \
     '' u 1:2 w p pt 7 lc rgb "blue" notitle, \
     '' u 1:(y0=y1,y1=$2,y0) w p pt 7 lc rgb "blue" notitle
### end of code

Результат:

enter image description here

...