使用gnuplot 4.2,是否可以获取特定列/行的值并以某种方式使用该值?
例如,假设我的数据文件包含以下内容
#1 2
7 13
5 11
23 17
53 12
对于一个简单的图,其中第1列是x轴,列2是y轴,我会: -
plot 'datafile' using 1:2
我要做的是通过该列中的第一个元素(13)规范化第2列中的所有数据。有没有办法在gnuplot本身中执行此操作(即,不使用脚本语言或首先预处理数据)?
干杯
答案 0 :(得分:5)
使用运行平均值演示,我设法实现了标准化为第二列第一个值的图。
base
变量用于存储参考值,first
函数在第一行初始化base
。
first(x) = ($0 > 0 ? base : base = x)
plot file.dat u 1:(first($2), base/$2)
应该提到的是,这不是使用gnuplot 4.2完成的。
修改:使用Christoph的建议更新。
答案 1 :(得分:2)
如果您的基值(例如13)位于数据集的第一行,您应该可以使用CVS版本的gnuplot执行您想要的操作。
查看running averages demo。沿着这些方向,您可以编写一个自定义函数,在第一次调用时将基值存储在自定义变量中,并在后续调用中返回该变量。
(由于该演示仅针对CVS版本列出,因此我认为当前版本不提供所需的功能。)
答案 2 :(得分:0)
添加一个新的13列,然后使用:
使用1:($ 2 / $ 3)
绘制'datafile'