我想为各种设备gnuplot一些数据,其中数据是这些设备处于某种状态的时间。
例如,给定设备 a 到 e ,绘制他们进入闹钟然后退出的时间,例如设备 a 11:00进入警报,12:00出现警报等。
dev_a | x------x
dev_b | x-----x
dev_c | x-x
dev_d | x-------------------
dev_e | x-----x x-----x
|_______________________________
| | | | |
11:00 12:00 13:00 14:00 15:00
输入数据需要从类似于:
的日志中获得 ....
11:00 dev_a alarm on
....
11:00 dev_c alarm off
11:10 dev_b alarm on
....
12:00 dev_a alarm off
....
我不确定如何开始 - 各种各样的专栏?
答案 0 :(得分:2)
要开始使用,您应该将输入文件调整为:
11:00 1 dev_a报警
11:01 3 dev_c报警关闭
11:10 2开始报警
12:00 1 dev_a报警关闭
12:10 2开始报警
11:15 4 dev_d报警
11:25 4 dev_d闹钟关闭
然后你用
set xdata time
set timefmt "%H:%M"
plot "file.txt" using 1:2:ytic(3) with points
您需要第二列将警报的所有条目放在1 y轴标签上。
这几乎可以满足您的需求。唯一缺少的是点之间的界限。一种可能性是使用箭头(没有箭头,所以实际上它是一条线)并构建一个脚本文件,以便一次绘制所有箭头。查看Tom的回答并提供一个很好的例子:Plotting arrows with gnuplot
答案 1 :(得分:1)
如果您以某种方式设法将日志文件转换并拆分为以下格式:
#time dev_a 11:00 1 12:00 1
#time dev_b 11:10 2 12:10 2
...
这是时间格式为浮点数,每个设备单独的文件,警报开/关到const dev_id。绘图变得简单:
set style data linespoints set yrange [0:5] set xdata time set timefmt "%H:%M" plot "dev_a.data" using 1:2 title "dev_a", "dev_b.data" using 1:2 title "dev_b", ...
好的,y轴描述仍然是一个问题,但你可以将它与Martins的答案结合起来。