我是gnuplot的新手。我只想绘制一张我在维基百科上找到的图:https://commons.wikimedia.org/wiki/File:Double_exponential_moving_average_weightings_N%3D10.png
但我得到这个语法错误“数据块名称必须跟随<< EODmarker”
谢谢
$N = 10;
$f = 1 - 2/($N+1);
$total = 0;
foreach $i (0..39) {
$value =
2 * 100.0 * (1 - $f) * ($f ** $i)
- 100.0 * (1 - $f) * (1 - $f) * ($i + 1) * ($f ** $i);
print "$i $value\n";
$total += $value;
}
print "# total $total (should approach 100)\n";
仅使用gnuplot
可以获得相同的结果。
N = 10
f = 1.0 - 2.0/(N + 1)
total = 0
set print 'dema.data'
do for [i=0:39:1]{
value = \
2 * 100 * (1.0 - f) * (f**i) \
- 100 * (1.0 - f) * (1.0 - f) * (i + 1.0) * (f**i)
print sprintf('%02d % .5f', i, value)
total = total + value
}
unset print
print sprintf('# total %g (should approach 100)', total)
要查看结果,我使用链接中修改过的gnuplot
code。
set terminal pngcairo size 800, 600
set output 'output.png'
set xrange [-0.5:39.5]
set xtics axis 5
set mxtics 5
set yrange [-4:35]
set format y "%.1f"
unset key
set style fill solid 1.0
set boxwidth 0.6 relative
plot "dema.data" with boxes
哪个产生this graph。