我想为各种设备绘制一些数据,其中数据是这些设备处于某种状态的时间。
例如,给定设备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
....
我不太确定如何开始——某种柱形图?
最佳答案
首先,您应该将输入文件调整为:
11:00 1 dev_a 闹钟开启
11:01 3 dev_c 闹钟关闭
11:10 2 dev_b 警报开启
12:00 1 dev_a 闹钟关闭
12:10 2 dev_b 警报开启
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
您需要第二列将警报 a 的所有条目放在 1 y 轴标签上。
这几乎会给你你想要的东西。唯一缺少的是点之间的线。一种可能性是使用箭头(没有箭头头,所以实际上它是一条线)并构建一个脚本文件,以便一次绘制所有箭头。查看汤姆对这个问题的回答,以获得一个很好的例子:Plotting arrows with gnuplot
关于graph - gnuplot 绘制离散(?)时间数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4849613/