使用不同的timefmt在gnuplot中绘制两个文件

时间:2015-06-23 16:09:46

标签: gnuplot datetime-format

我需要使用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

1 个答案:

答案 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处理多个列自动。