这是我的数据文件:
12100 4592
14400 5000
16900 6443
12100 4479
14400 5393
16900 5969
12100 4605
14400 5353
16900 6268
我想要 3 次测试的平均值并画一条线。例如,我想用 gnuplot 绘制这 3 个点:
12100 4558,66
14400 5248
16900 6226,66
第二个值是 3 次测试的平均值。
如果所有点的测试数量相同,则可以借助
smooth frequency
选项轻松完成:
plot "datafile.txt" u 1:($2/3) smooth frequency with points
在 gnuplot 中输入
help smooth frequency
以获取有关此选项的更多信息。
简短的答案是使用
smooth unique
(检查help smooth unique
)
plot FILE u 1:2 smooth unique
smooth unique选项使得数据在x上单调;点与 相同的 x 值被具有平均值的单个点替换 y 值。然后用直线连接所得点 片段。
有了这个,您就可以独立于不同数量的相同 x 值。
选项
smooth unique
至少从 gnuplot 4.2.6 (2009) 开始就存在,可能更早。
以下示例将数据、平均值和均值绘制为标签。 由于它使用数据块,因此需要 gnuplot 5.0。对于 gnuplot 4.x 版本,您必须从数据文件读取数据/向数据文件写入数据,但不幸的是,存在一个“错误”,将附加数字写入文件,这在绘制标签时是不需要的。
脚本:(适用于 gnuplot>=5.0)
### plot average of data
reset session
$Data <<EOD
12100 4592
14400 5000
16900 6443
12100 4479
14400 5393
16900 5969
12100 4605
14400 5353
16900 6268
EOD
set table $AVG
plot $Data u 1:2 smooth unique
unset table
set key top left noautotitle
set offset graph 0.1, graph 0.1, graph 0.1, graph 0.1
plot $Data u 1:2 w p pt 7 lc rgb "red" ti "Data", \
'' u 1:2 smooth unique w lp pt 7 lw 2 lc rgb "blue" ti "Average", \
$AVG u 1:2:2 w labels offset 0,2.5
### end of script
结果:
schema版本:“2.2” 描述:“本文档从 EC2 实例中获取所有关联卷的快照。” 阶段: