迭代时多列文件的gnuplot操作

时间:2013-07-18 16:16:06

标签: awk gnuplot iteration

我正在使用gnuplot绘制包含许多列的文件:

plot for [i=2:119]  "./file.dat" using 1:i w l lt  9

它工作正常,但我无法编辑它以打印移位的行。 我想打印这个,其中N是移位值

plot for [i=2:119]  "./file.dat" using 1:$i+N w l lt  9

但是我收到了错误($上的^):

   gnuplot> plot for [i=2:119]  "./file.dat" using 1:$i+1 w l lt  9
    "./file.plt", line 182: Column number expected

解决方法是使用AWK,但在这种情况下,我遇到了一些错误。

2 个答案:

答案 0 :(得分:3)

要保持最接近当前脚本,您可以按照以下步骤进行操作

 plot for [i=2:119]  "./file.dat" using 1:(column(i+N)) w l lt  9

我希望它不言自明,但gnuplot help using提供了有关column()

的更多信息

答案 1 :(得分:1)

我发现记住如何对存储为变量的列号进行操作或者甚至是可能的操作变得棘手。但有两种解决方法:

1)更改范围

plot for [i=(2+N):(119+N)] "./file.dat" using 1:i ...

2)使用中间变量

do for [i=2:119] {
    ii = i + N
    plot "./file.dat" using 1:ii ...
}