gnuplot中的多个数据集:索引与迭代与范围的行为差异

时间:2011-07-22 21:49:51

标签: dataset indexing gnuplot

我认为我理解这两个情节命令的行为 有什么不同,但我不太明白为什么它们不同。也就是说,我没想到会有差别。这两个案例是:

plot for [i=0:3] 'ctg-y2.dat' index i using 2 title columnheader(2) with lines

plot 'ctg-y2.dat' index 0:3 using 2 title columnheader(2) with lines

(示例数据文件为http://gnuplot.cvs.sourceforge.net/viewvc/gnuplot/gnuplot/demo/ctg-y2.dat

第一个做我期望的事情:对于文件中的四个数据集中的每一个,从数据集的第一行读取列标题,并绘制剩余数据。第二个做了一些相当不同的事情:它读取任何数据集的列标题,但第一个,它似乎绘制所有数据,就像它是一个数据集的一部分。结果很乱,因为隐含的x值不能正确匹配。

手册中索引的描述没有谈到使用带索引的范围的这种行为,尽可能接近我所知道的。它在某处记录了吗?这是一个错误吗?我做了些蠢事吗?

1 个答案:

答案 0 :(得分:2)

我之前从未使用index,但如果我理解正确,它似乎将所有索引数据集合并到一个集合中。这就是为什么线条都以红色显示。但是,如果针对列索引绘制而不是给定索引(例如using 2 vs using 1:2),则它似乎回落到索引1.这是由于第一行无法解释(因为它是一个标题) 列标题的问题似乎正常,因为gnuplot只需要一个数据集,它与关键字index结合使用,因此不希望有多个列标题。

由于您已经通过迭代解决了问题,因此无需进一步的建议。我认为这正是你应该如何绘制数据的。