gnuplot从文件中绘制多个数据集并将所有这些条形图分组

时间:2012-06-08 13:57:23

标签: graph plot gnuplot

我想在第3列和第4列中为文件中的每个数据集绘制条形图,数据集由多个换行符标识,并使用索引在下面的脚本中显示。我可以用“linespoint”绘制这些数据。我的图表看起来像my graph。但我想用“框”作为I want graph like this来绘制数据。

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)

1 个答案:

答案 0 :(得分: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)终端上面的内容:

enter image description here