Прежде всего, я должен использовать 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 году):
Но я бы хотел включить 3 строки с 2019. Но если я сохраню все свои данные (2019+ 2020), у меня есть такой результат:
И если я хочу расширить этот график до следующего года, изменив дату окончания 2020-12 к 2021-01, я Вот этот результат:
Кто-нибудь, кто скажет мне, почему у меня такой результат?