我试图使用gnuplot来绘制包含日期时间和温度的CSV文件,但是当它工作时会产生一些奇怪的结果(主要只是在图表中间的一条直线上)。这是代码:
set xdata time
set timefmt '%Y-%m-%d %H:%M:%s'
set xrange["2013-05-29 00:00:00":"2013-06-04 00:00:00"]
set datafile separator ','
plot 'weather.csv' using 1:2
这是数据样本:
2013-05-29 18:30:00,20.0
2013-05-29 21:29:00,14.0
2013-05-29 22:29:00,13.0
2013-05-29 23:29:00,12.0
2013-05-30 08:28:00,13.0
2013-05-30 09:30:00,14.0
收到错误:
Can't plot with an empty x range!
所以我在命令行输入了命令:
gnuplot> set xdata time
gnuplot> set timefmt '%Y-%m-%d %H:%M:%s'
gnuplot> set xrange["2013-05-29 00:00:00":"2013-06-04 00:00:00"]
gnuplot> show xrange
set xdata time
set xrange [ "1970-01-01 00:00:-946684800" : "1970-01-01 00:00:-946684800" ] noreverse nowriteback
gnuplot> show
我做错了什么?
由于
答案 0 :(得分:2)
这是您的timefmt
定义
根据{{3}},%s
被解释为
seconds since the Unix epoch (1970-01-01 00:00 UTC)
这也解释了show xrange
的输出。对于此日期解释,您的xrange
将显示为空。
如果您使用%S
(second, 0-60
),您的示例将很好地绘制:
set timefmt '%Y-%m-%d %H:%M:%S'