使用 gnuplot 绘制数据

Ploting data with gnuplot

我在 .dat 文件中有 3 列和 1000 行整数,我必须按照第一列在 x 轴上且 sqrt(c2²+c3²) 在 y 轴上的方式在图表中绘制它-axes,其中 c2 来自第二列,c3 来自第三列,使用 gnuplot 脚本。

通常我使用 plot <somefile.dat> using 1:2 之类的东西,但现在我必须以某种方式使用第二列和第三列 using 1:sqrt(2²+3²).

要根据数据文件中的列值构造方程,gnuplot 提供括号分组,例如(your equation here)。为了在括号内定义方程式,您可以通过在列号前加上 '$' 来引用所需的列值(例如,</code> 指第 2 列中的值,<code> 指来自第 3 列等的值),您可以根据需要在括号内多次使用这些引用,每次使用都将替换为编号列中的值。

在您的情况下,第 1 列是您的 independent x 值,您的等式结果是 dependent 值从第 2 和第 3 列,您可以这样做:

plot "somefile.dat" using 1:(sqrt(*+*))

输入文件的简短示例为:

$ cat somefile.dat
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
6 6 6
7 7 7
8 8 8
9 9 9
10 10 10

为方便起见创建一个简短的绘图文件:

$ cat some.plt
plot "somefile.dat" using 1:(sqrt(*+*))

您可以使用

生成您的情节
$ gnuplot -p some.plt

检查一下,让我知道这是否是您需要的。