3

我正在使用 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,但在这种情况下我也会遇到一些错误。

4

2 回答 2

3

为了与您当前的脚本保持最接近,您可以按以下方式进行

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

我希望它是不言自明的,但gnuplot help using提供了更多关于column()

于 2013-07-19T06:18:15.320 回答
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 ...
}
于 2013-07-18T18:28:03.480 回答