从gnuplot中的不同行获取特定元素的值

fua*_*uad 6 scripting plot graph gnuplot

使用gnuplot 4.2,是否可以获取特定列/行的值并以某种方式使用该值?

例如,假设我的数据文件包含以下内容

#1  2
7  13
5  11
23 17
53 12
Run Code Online (Sandbox Code Playgroud)

对于一个简单的图,其中第1列是x轴,第2列是y轴,我会:

plot 'datafile' using 1:2
Run Code Online (Sandbox Code Playgroud)

我要做的是通过该列中的第一个元素(13)规范化第2列中的所有数据.有没有办法在gnuplot本身做到这一点(即,不使用脚本语言或首先预处理数据)?

干杯

Jon*_*dén 7

使用移动平均演示,我设法获得了归一化为第二列的第一值的图。

base变量用于存储参考值,并且该first函数base在第一行初始化。

first(x) = ($0 > 0 ? base : base = x)
plot file.dat u 1:(first($2), base/$2)
Run Code Online (Sandbox Code Playgroud)

应该提到的是,这不是使用gnuplot 4.2完成的。

编辑:使用克里斯托夫的建议进行了更新。


小智 -1

添加一个充满 13 的新列,然后使用:

使用 1:($2/$3) 绘制“数据文件”