Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to trace a trendline in my graph with Gnuplot 4.6?

I have these data :

2019-08-28,384
2019-08-29,394
2019-08-30,406
2019-08-31,424
2019-09-01,439
2019-09-02,454
2019-09-03,484

And the gnuplot script :

set title "test"
set terminal png truecolor size 960,720 background rgb "#eff1f0"
set output "/home/tbenedet/Desktop/GNUPLOT\ AIX/test.png"
set grid
set style line 1 \
    linecolor rgb '#0060ad' \
    linetype 1 linewidth 2 \
    pointtype 7 pointsize 1.5
set offsets 0.5,0.5,0,0.5
set datafile separator ","
plot "df_output.txt" using 2:xtic(1) with linespoints linestyle 1

I would like to put a trendline like that :

enter image description here

But I'm very bad in math and I don't know how to do that with gnuplot... Someone to show me ?

like image 658
Makmy Avatar asked Jan 27 '26 00:01

Makmy


1 Answers

Supposing your data as described by a straight line, you can use define such equation and use the fit command.

set title "test"
set terminal pngcairo size 700,600
set output "test.png"
set grid
set style line 1 \
    linecolor rgb '#0060ad' \
    linetype 1 linewidth 2 \
    pointtype 7 pointsize 1.5
set offsets 0.5,0.5,0,0.5
set datafile separator ","
set key Left left reverse

# The equation
f(x) = a*x + b
# The fit 
fit f(x) "df_output.txt" u 0:2 via a,b

set xtics rotate by 45 right

plot \
    "df_output.txt" u 2:xtic(1) w p ls -1 pt 7 title "data points",\
    f(x) w l lc "red" title "trendline"

Result

fit

like image 175
GRSousaJr Avatar answered Jan 30 '26 21:01

GRSousaJr



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!