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值不能正确匹配.

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

最佳答案 我之前从未使用过索引,但如果我理解正确,它似乎将所有索引数据集合并到一个集合中.这就是为什么线条都以红色显示.但是,如果针对列索引绘制而不是给定索引(例如使用2 vs使用1:2),它似乎回落到索引1.这是因为第一行无法解释(因为它是标题).

列标题的问题似乎正常,因为gnuplot期望只有一个数据集,它与关键字索引结合,因此不希望有多个列标题.

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

点赞