如果您的数据如图所示在一行中,您可以通过使用 plot for 语法在列索引上循环并从该索引计算 x 值来实现这一点。我们可以使用 column 函数来获取该列,该函数检索指定的列号。
set boxwidth 1
set datafile separator comma # only if data is comma separated
plot for [i=1:5] (2*i-1):(column(i)) with boxes
如果我们需要确保每次使用相同的线型,我们可以在 plot 命令中明确声明。
plot for [i=1:5] (2*i-1):(column(i)) with boxes lt 1
另外,如果要生成一个键,并且我们不希望每个绘图语句都生成一个,我们可以测试并仅在第一次迭代时给出一个非空标题(空标题被视为与否标题)。
plot for [i=1:5] (2*i-1):(column(i)) with boxes lt 1 title (i==1)?"Title":""
如果您的数据按照正常格式分为行,则可以通过不同的方式获得。
Gnuplot 有几个伪列(有关详细信息,请参阅help pseudocolumns)。在您的情况下,第 0 列是有趣的。第 0 列给出了从 0 开始的数据的行号。因此,要获得这样的连续奇数,您可以使用 2*$0+1。
例如,如果您的数据(存储在 datafile.txt 中)看起来像
3342336
3375103
7110653
32770
0
并且您希望在这些值处绘制长度为 1 的框,您可以这样做
set boxwidth 1
plot "datafile.txt" u (2*$0+1):1 with boxes