首页 > 解决方案 > 我的脚本 gnuplot 4.6 上的开始日期和结束日期有问题

问题描述

首先,我一定会在我的服务器上使用4.6 版本的 gnuplot。

我有这些数据:

2019-10;27.39
2019-11;27.39
2019-12;27.54
2020-01;27.13
2020-02;27.01
2020-03;26.93
2020-04;26.46
2020-05;26.63

我有这个 gnuplot 脚本:

reset

FILE = "LINEARFIT.txt"
set datafile separator ";"
set xdata time
set timefmt "%Y-%d"
set format x "%Y\n%d"

plot FILE u (StartDate=timecolumn(1)):1 index 0 every ::0:0:0

EndDate = strptime("%Y-%d","2020-12")
f(x) = a*(x-StartDate) + b
FIT_LIMIT = 1e-8
fit f(x) FILE u (timecolumn(1)):2 via a,b

set terminal png truecolor size 620,420 background rgb "#eff1f0"
set output "/xxx/xxx/xxx/data.png"
set xrange[StartDate:EndDate]
set grid xtics, ytics
set yrange[0:30]
#set xtics rotate by 90
set format y "%g"
myLabel(n) = sprintf("%g",n)

plot FILE u (timecolumn(1)):2 w lp pt 7 lc rgb "red" notitle, \
'' using 1:2:(myLabel($2)) w labels offset 0,-0.5 notitle, \
      f(x) ti "linear fit with extrapolation"

如果我使用当年的数据(从 2020 年开始的数据中的所有行),此脚本运行良好: 在此处输入图像描述

但我想包括 2019 年的 3 行。但如果我保留所有数据( 2019+2020 ),我会得到以下结果: 在此处输入图像描述

如果我想通过将结束日期 2020-12 修改为 2021-01 来将此图表扩展到下一年,我会得到以下结果: 在此处输入图像描述

有人告诉我为什么我有这个结果?

标签: gnuplot

解决方案


为了不让这个问题看起来没有答案:

您的时间格式应该是%Y-%d(年-日),而不是%Y-%m(年-月)。


推荐阅读