如何绘制相同的值直到它发生变化?

问题描述 投票:0回答:1

我的文件中有数据,它们有日期/时间点和值。仅当值更改时才写入数据中的行。例如:

10:01  12.00
10:12   8.00
10:14   9.00

我想绘制一张图表,它不会从一个点到另一个点直线绘制直线,而是绘制下降线,而是保持水平线直到点 10:12,然后跳到值 8.00,然后将水平线保持在值 8.00 直到结束跳到9.00

我四处寻找,但挑战是我不知道这样一个图的正确名称是什么。我希望你能帮我在 gnuplot 中画出来。预先感谢您。

gnuplot
1个回答
7
投票

其实,还有另一种步法

fillsteps
。 我在自己的基金中找到了一个小例子。 它还说明了数据中存在空行时样式的行为方式。线条稍微移动,以便更好地看到差异。

脚本:(适用于 gnuplot>=5.0.0)

### plot with steps
reset session

$Data <<EOD
1 -1
2 -1
3  1
4 -1

6 -1
7 -1

8  0.5

9 -1
11 -1
13  1
14  1
EOD

set colorsequence classic
set ytics 1
set mxtics 2
set yrange[-1.2:1.9]
set grid xtics, mxtics, ytics
set key center top

plot $Data u 1:2 w fillsteps lw 0 fs transp solid 0.1 fc rgb 0 ti "fillsteps",\
        '' u ($1-0.05):($2+0.025) w steps lt 1 lw 2 ti "steps",\
        '' u ($1+0.05):($2-0.025) w fsteps lt 2 lw 2 ti "fsteps",\
        '' u 1:2 w histeps lt 3 lw 2 ti "histeps",\
        '' u 1:2 w p lt 7 lw 2 lc "black" ti "data points"
### end of script

结果:(gnuplot 6.0.0)

enter image description here

惊喜: 由于某种原因,gnuplot 6.0.2 中的结果与

with histeps
不同。显然,从那时起,空行的处理方式有所不同。如果您想像上图那样拥有它们,您可能需要一些额外的解决方法。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.