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

How to plot two columns with different index in Gnuplot?

我有一个数据集,其中有两组数据,每组数据有 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([=12=]+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([=10=])+1])) index 0 w lp pt 7
### end of code

结果: