如何在Gnuplot中绘制具有不同索引的两列?

如何在Gnuplot中绘制具有不同索引的两列?,gnuplot,Gnuplot,我有一个数据集,有两组数据,每组有3列。我知道我使用plot”dataset.dat“I 0 u 1:2绘制第一组数据中的第二列与第一列(索引以零开始),或plot”dataset.dat“I 1 u 2:3绘制第三列与第二组数据中的第二列。但是,如果我想绘制索引1的第二列和索引0的第二列,那会怎样呢?或者我必须把它们连续地放在同一个索引中。我在文档中进行了搜索,但没有提到。感谢您的帮助。这基本上是一个数据(重新)安排的挑战。您可以使用任何外部工具重新排列数据,但原则上,您也可以使用gnuplo

我有一个数据集,有两组数据,每组有3列。我知道我使用
plot”dataset.dat“I 0 u 1:2
绘制第一组数据中的第二列与第一列(索引以零开始),或
plot”dataset.dat“I 1 u 2:3
绘制第三列与第二组数据中的第二列。但是,如果我想绘制索引1的第二列和索引0的第二列,那会怎样呢?或者我必须把它们连续地放在同一个索引中。我在文档中进行了搜索,但没有提到。感谢您的帮助。

这基本上是一个数据(重新)安排的挑战。您可以使用任何外部工具重新排列数据,但原则上,您也可以使用gnuplot以某种方式重新排列数据。 一种可能的解决方案是将y值(从索引1)放在一个单独的数据块(这里;
$myY
)中,并在最终的绘图命令中通过数据块行索引对其进行寻址,数据块行索引从1开始,需要一个整数,这就是为什么它是
$myY[int($0+1)]
。此外,您需要通过
real()
将其转换为一个(浮点)数字,选中
help real
。假设子块具有相同的长度

代码:

### plot x and y from different indices
reset session

$Data <<EOD
 11    12    13
 21    22    23
 31    32    33


111   112   113
121   122   123
131   132   133
EOD

set table $myY
    plot $Data u 2 index 1 w table
unset table

unset key
plot $Data u 2:(real($myY[int($0)+1])) index 0 w lp pt 7
### end of code
###从不同索引绘制x和y
重置会话

$Data谢谢!。真的很有帮助。