如何让 gnuplot 识别日期格式“%Y-%m-%d-%H:%M:%S”

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

这是数据测试.log:

2024-08-22 13:00:02 9
2024-08-22 13:10:03 20
2024-08-22 13:20:03 20
2024-08-22 13:30:03 9
2024-08-22 13:40:03 9

这是 test.gnuplot 文件:

set terminal x11 1
set timefmt "%Y-%m-%d %H:%M:%S"
set xdata time
set xtics rotate by 60 offset -3.8,-7.8
set bmargin 15
set format x "%Y-%m-%d %H:%M:%S"
set ylabel "test Value (Bq/m3)"
plot  "test.log" using 1:2 title 'test measurement in Bq/m^3 every 10 minutes' with lines
pause 60

结果? :

$ gnuplot test.gnuplot
Warning: empty y range [13:13], adjusting to [12.87:13.13]

所以它基本上将 13 小时识别为数据,忽略 %H:%M:%S。 文档对此没有用,因为它只是说明空格处理得很好:http://www.gnuplot.info/docs_4.2/node274.html

为那些可能遇到同样问题的人找到了丑陋的解决方法: 将格式 2024-08-22 13:00:02 替换为 2024-08-22-13:00:02,然后将格式设置为 :

set timefmt "%Y-%m-%d-%H:%M:%S"

如果我错过了什么,请告诉我。

gnuplot
1个回答
0
投票

感谢@choroba,我可以理解我的 test.gnuplot 需要修改为精确到 gnuplot 数据在哪里(1:3 而不是 1:2):

set terminal x11 1
set timefmt "%Y-%m-%d %H:%M:%S"
set xdata time
set xtics rotate by 60 offset -3.8,-7.8
set bmargin 15
set format x "%Y-%m-%d %H:%M:%S"
set ylabel "test Value (Bq/m3)"
plot  "test.log" using 1:3 title 'test measurement in Bq/m^3 every 10 minutes' with lines
pause 60

我觉得自己很傻,我确实错过了一些东西。再次感谢!

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