如何使用GnuPlot绘制存储在不同列中的CSV文件日期和时间的时间序列图?

时间:2012-06-06 19:41:45

标签: datetime csv gnuplot

让我们把它作为数据文件:

2012-06-01, 01:00, 1
2012-06-01, 02:00, 2
2012-06-01, 03:00, 4
2012-06-01, 04:00, 3
...
2012-06-02, 01:00, 5
2012-06-02, 02:00, 2
2012-06-02, 03:00, 1
2012-06-02, 04:00, 1
...

我知道当日期和时间用单个字段表示时,我知道如何设置timefmtxdata来绘制时间序列,但是当时间和日期存储在单独的列中时,如何使用GnuPlot绘制此图?

2 个答案:

答案 0 :(得分:15)

与你的空间没有太大的不同......

set timefmt '%Y-%m-%d, %H:%M'
set xdata time
set datafile sep ','
plot 'test.dat' u 1:3 w lines

我不知道你之前是否使用了带空格的timefmt(对于常规空格分隔的数据文件),但在这种情况下,你指定了时间数据开始的列 - gnuplot会自动查找多列它需要填写全时格式。当然,您需要一个完整的使用规范(在这种情况下,这意味着指定数据在第3列 - 注意,而不是您可能期望的第二列)。

(在gnuplot 4.4 - OS X上测试)

答案 1 :(得分:5)

运行Arch Linux Gnuplot 4.6 patchlevel 3

我无法获得mgilson的代码片段。 我需要设置xrange才能停止抱怨

all points y value undefined!

我不得不

set xrange["2012-06-01, 01:00":"2012-06-02, 05:00"]

最后得到了一个漂亮的情节