# set terminal canvas rounded size 600,400 enhanced fsize 10 lw 1.6 fontscale 1 name "running_avg_1" jsdir "." # set output 'running_avg.1.js' set border 3 front lt black linewidth 1.000 dashtype solid set key fixed right center vertical Left reverse enhanced autotitle box lt black linewidth 1.000 dashtype solid set key invert samplen 4 spacing 1 width 0 height 0 set style data linespoints set xtics border in scale 1,0.5 nomirror norotate autojustify set ytics border in scale 1,0.5 nomirror norotate autojustify set title "Demonstrate use of assignment and serial evaluation operators\nto accumulate statistics as successive data lines are read in\n" set xrange [ 0.00000 : 57.0000 ] noreverse nowriteback samples(x) = $0 > 4 ? 5 : ($0+1) avg5(x) = (shift5(x), (back1+back2+back3+back4+back5)/samples($0)) shift5(x) = (back5 = back4, back4 = back3, back3 = back2, back2 = back1, back1 = x) init(x) = (back1 = back2 = back3 = back4 = back5 = sum = 0) GPFUN_samples = "samples(x) = $0 > 4 ? 5 : ($0+1)" back1 = 5.0 back2 = 9.0 back3 = 8.0 back4 = 9.0 back5 = 10.0 GPFUN_avg5 = "avg5(x) = (shift5(x), (back1+back2+back3+back4+back5)/samples($0))" GPFUN_shift5 = "shift5(x) = (back5 = back4, back4 = back3, back3 = back2, back2 = back1, back1 = x)" GPFUN_init = "init(x) = (back1 = back2 = back3 = back4 = back5 = sum = 0)" datafile = "silver.dat" sum = 1918.0 x = 0.0 ## Last datafile plotted: "silver.dat" plot sum = init(0), datafile using 0:2 title 'data' lw 2 lc rgb 'forest-green', '' using 0:(avg5($2)) title "running mean over previous 5 points" pt 7 ps 0.5 lw 1 lc rgb "blue", '' using 0:(sum = sum + $2, sum/($0+1)) title "cumulative mean" pt 1 lw 1 lc rgb "dark-red"