我需要使用gnuplot在同一个图中绘制两个数据文件。第一个数据文件如下:
2015-02-10 10.1
2015-02-15 12.1
2015-02-20 16.1
2015-02-25 14.1
...
,第二个数据文件就像
2015-02-10-10:00 12.5
2015-02-10-15:00 21.4
2015-02-15-12:30 08.3
2015-02-15-22:00 09.3
2015-02-20-08:15 12.8
2015-02-20-17:32 16.7
2015-02-25-07:20 14.0
2015-02-25-21:39 14.5
..
要解析第一个数据文件,timefmt
应设置为"%Y-%m-%d"
,第二个文件应设为"%Y-%m-%d-%H:%M"
。但是,由于两个数据文件应该一起绘制,如何正确定义timefmt
?
答案 0 :(得分:3)
使用verrsion 4.6及更早版本,您必须使用strptime
“手动”解析日期时间字符串:
set xdata time
plot 'file1.dat' using (strptime('%Y.%m.%d', strcol(1))):2,\
'file2.dat' using (strptime('%Y.%m.%d-%H:%M', strcol(1))):2
使用gnuplot版本5,您可以直接为timecolumn
函数提供时间格式,以便您可以根据需要使用尽可能多的格式:
set xdata time
plot 'file1.dat' using (timecolumn(1, '%Y.%m.%.d')):2,\
'file2.dat' using (timecolumn(1, '%Y.%m.%d-%H:%M')):2
在您的情况下,两个变体之间的差异是微不足道的,但是当日期时间扩展到数据文件中的多个列时,后一个变体会更加舒适,因为timecolumn
处理多个列自动。