【问题标题】:Plotting date/time data points and functions in the same graph在同一图表中绘制日期/时间数据点和函数
【发布时间】:2011-10-18 16:09:59
【问题描述】:

我想用 unix epoch 指定的 x 值绘制一组日期/时间数据点,自 1970 年以来的秒数。我还想绘制一个趋势函数和数据(是的,我知道 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 太高了。显然我对日期/时间图一无所知。我应该怎么做才能达到预期的效果?

【问题讨论】:

    标签: gnuplot


    【解决方案1】:

    我在手册页中找到了这一点:“[在日期图中] gnuplot 也将接受一个整数表达式,它将被解释为从 2000 年 1 月 1 日开始的秒数。”

    unix epoch 和 gnuplot 时间之间存在 946684800 秒的差异。这个 gnuplot 脚本给出了预期的情节(注意 946684800 添加到 x):

    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"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-20
      • 2020-07-03
      • 2012-12-28
      • 1970-01-01
      • 2016-11-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多