我想在第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)
答案 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)终端上面的内容: