-1

我想为文件中的每个数据集绘制第 3 列和第 4 列,数据集由多个换行符标识,并使用索引引用,如下面的脚本所示。我可以用“linespoint”绘制这些数据。我的图表看起来像我的图表。但我想用“盒子”绘制数据,因为我想要这样的图表

x 轴将有第 3 列 (1,2,3),y 轴将有第 4 列,对于 x (1,2,3) 的每个值应该有 2 个柱,一个来自索引 0,第二个来自索引 1 .

数据文件如下所示:

2-100

2 100 1 3.10 249

2 100 2 3.41 250

2 100 4 3.70 249

3-100

3 100 1 3.10 252

3 100 2 3.48 252

3 100 4 3.72 254

2-100 和 3-100 将用作标题“块的第一行和第一列”,前 4 行在脚本中读作“索引 o”,后 4 行读作“索引 1”

我使用的脚本:

plot \

  "$1" index 0 using 3:4 with boxes fs solid title columnhead(1),\

  "$1" index 1 using 3:4 with boxes fs solid title columnhead(1)
4

1 回答 1

2

我已经重新格式化了您的数据文件(至少,如果我正确理解了您的原始问题) - 现在看起来像:

2-100
2 100 1 3.10 249
2 100 2 3.41 250
2 100 4 3.70 249


3-100
3 100 1 3.10 252
3 100 2 3.48 252
3 100 4 3.72 254

应该能够像这样使用以下格式格式化您的数据文件sed

sed -e '/^$/ d'           -e '/[0-9]-100/{x;p;p;x}'               datafile.dat
#     #remove all newlines  #reinsert newlines where appropriate

(这假设列标题总是以数字(0-9)开头,然后是“-100”。如果您的数据文件更复杂一点,您可能需要更有趣一点。

这可以使用以下方法绘制:

set yrange [0:*]
set style fill solid
plot for [i=0:1] 'test2.dat' index i u ($3+i*0.25):4:(0.25) w boxes title columnhead(1)

当然,您可以分解 for 循环以将特殊属性分配给每个情节或其他...

如果你想要特殊标签,你可以这样做

set xtics scale 0,0 format ""
set xtics ("This is at 1" 1, "this is at 2" 2, "this is at 3" 3)

在你的情节命令之前。

这是我将上述内容与 png (libgd) 终端一起使用的结果:

在此处输入图像描述

于 2012-06-08T14:36:51.947 回答