语法错误“数据块名称必须后跟<< EODmarker”

问题描述 投票:-1回答:1

我是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
1个回答
0
投票

仅使用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)

要查看结果,我使用链接中修改过的gnuplotcode。

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

© www.soinside.com 2019 - 2024. All rights reserved.