gnuplot:如何将数据文件的每一行作为Y轴并增量X轴绘制?

17

我有一个包含30列和N行的数据文件。每一行对应于函数f(x)在x={1,...,30}时的30个值。数据文件的模式如下:

#<index> f(1) f(2) ... f(30)
1 7.221 5.302 ... -1.031
2 4.527 3.193 ... 0.410
...
N 6.386 1.321 ... -0.386

gnuplot将第一列解释为X轴,第二列解释为Y轴。但是,我想要的是在不转置数据文件的情况下将每行绘制到一个单独的输出文件中。例如,对于第一行,期望的输出应该与gnuplot使用此输入文件得到的输出相同:

# X Y
1 7.221
2 5.302
...
30 -1.031
2个回答

10

我找到了一个解决方案:

plot "data.dat" matrix every 1::1 with linespoint
  • matix 表示输入文件的数据类型为矩阵。
  • every 1::1 跳过第一列。

有没有一种方法可以使每行的颜色不同? - Jakub P
2
@JakubPietkun 是的,有的。看起来,plot "data.dat" matrix using 1:3:2 every 1::1 with linespoints palette 就可以解决问题了。 - John_West

7

根据 @Christoph 的评论更新:

plot for [i=2:30] 'data.dat' using (i-1):(column(i)) with linespoint

谢谢您的回答,但这不是我要找的。这将输出 'data.dat' 的第一行的这些点 (1,y1), (1,y2), ... (1,y30)。期望的答案是 (1,y1), (2,y2), ..., (30,y30)。 - cartoonist
1
它不能正常工作。它绘制的不是逐行,而是逐列。下面的答案是正确的。 - John_West

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接