Gnuplot:如何使用一个数据列中的多个值?

时间:2012-11-19 15:14:54

标签: function awk gnuplot lines

我有一个多列数据文件。假设我只需绘制第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行的函数中使用的变量中?

非常感谢您的帮助!

祝福, TOB

1 个答案:

答案 0 :(得分: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的输出(抱歉,我只是不记得了)那么你就是在做生意。

编辑:快速google 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。