我想用自1970年以来的unix epoch指定的x值绘制一组日期/时间数据点。我还想绘制趋势函数和数据(是的我知道gnuplot可以为我做这个,但这是一个例子)。所以我有data.txt看起来像这样:
1303430400 67.5
1303862400 65.5
1304208000 62.9
1304553600 60.2
我有一个看起来像这样的gnuplot程序:
set terminal png
set output 'plot.png'
set timefmt "%s"
set xdata time
plot "data.txt" using 1:2 title "Data points", \
-7.0/(1123200)*x + 8190.43 title "Trend"
现在,该函数只是数据的线性近似。我检查了配方,应该没问题。例如,插入1304553600(范围的最后一个值),就得到60.2。
我希望看到我的数据点与函数一起大致跟随数据点。相反,功能图离开了,大约6000太高了。显然我不明白日期/时间图。我该怎么办才能得到预期的结果?
答案 0 :(得分:4)
我在手册页中找到了这个:“[在日期图中] gnuplot也会接受一个整数表达式,从2000年1月1日起将被解释为秒。”
unix epoch和gnuplot时间之间有946684800秒的差异。这个gnuplot脚本给出了预期的绘图(注意x增加了946684800):
set terminal png
set output 'plot.png'
set timefmt "%s"
set xdata time
plot "stackoverflow.txt" using 1:2 title "Data points", \
-7.0/(1123200)*(x+946684800) + 8190.43 title "Trend"