在同一图表中绘制日期/时间数据点和函数

时间:2011-10-18 16:10:00

标签: gnuplot

我想用自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太高了。显然我不明白日期/时间图。我该怎么办才能得到预期的结果?

1 个答案:

答案 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"