1

我有一个多列数据文件。假设我只需要从第 13 行绘制第 4 个数字。这适用于以下代码:

plot 'datafile' u (some fix x-value):($0==13? $4 :1/0) with points

现在我想从第 13 行和第 11 行绘制这些数字的平均值。像这样的东西:

plot 'datafile' u (some fix x-value):( ($4(line11)+$4(line13.))/2 ) with points

据我所知,没有办法在 gnuplot 中解决这两行,对吧?我可以在 gnuplot 中使用 awk 或 sed 吗?也许将第 11 行的值存储在可以在第 13 行的函数中使用的变量中?

非常感谢您的帮助!

最良好的祝愿,托布

4

1 回答 1

1

我已经很长时间没有使用 gnuplot 了,我真正记得的只是我过去非常依赖 awk 来解析数据文件。要从 awk 的第 13 行获取第 4 个“数字”(我假设您的意思是字段/列),只需:

awk 'NR==13{print $4}' datafile

并从第 11 行和第 13 行的第 4 个字段中获取平均值:

awk 'NR~/^(11|13)$/{sum+=$4} END{print sum/2}' datafile

现在,如果有人可以告诉您如何在 gnuplot 中使用 awk 的输出(对不起,我只是不记得了),那么您就是在做生意。

编辑:gnuplot 和 awk 的快速谷歌显示了这个:

gnuplot> plot "<awk '{x=x+$2; print $1,x}' file1.dat" with boxes

来自http://security.riit.tsinghua.edu.cn/~bhyang/ref/gnuplot/datafile3-e.html以及其他几个示例。HTH。

于 2012-11-20T14:59:08.400 回答