Awk 迭代时多列文件的gnuplot操作

Awk 迭代时多列文件的gnuplot操作,awk,gnuplot,iteration,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 但是我收到了错误(美元上的“^”): 解决方法是使用AWK,但在这种情况下,我也会遇到一些错误。我发现,要记住如何对存储为变量的列号执行操作,或者如果

我正在使用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
但是我收到了错误(美元上的“^”):


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

我发现,要记住如何对存储为变量的列号执行操作,或者如果可能的话,会变得很棘手。不过,有两种解决办法:

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 ...
}

要与当前脚本保持最接近,可以按如下操作

 plot for [i=2:119]  "./file.dat" using 1:(column(i+N)) w l lt  9
我希望它是不言自明的,但是使用
gnuplot帮助提供了有关
column()的更多信息

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