我想要一个条形图顶部的条形图,显示一组条形图,有错误,条形图上方的标签表示该条形图与第一条条形图的差异。虽然我得到了正确的定位,但它总是有点偏离。 Y似乎是正确的,即使有很大的错误,但是x位置在中间条上是绝对正确的(蓝色C),所有左边的条似乎有点太多了,而右边的所有条都有点太多了。此外,条形越多,不需要的偏移就越大。我的位置计算有错误吗?有更好的方法吗?
我使用这段代码来定位标签:
with labels center offset first (1 + (i - (configurations-1) / 2.0) / (configurations))
我发布了一个示例脚本和数据文件以及显示此处绘图的结果图:(第二个for循环结尾处的代码控制标签的位置:
情节:
脚本test.gnuplot:
reset
set terminal png size 500,300
set autoscale
set yrange [0:]
set style data histogram
set style histogram cluster gap 1 errorbars
set style fill solid border -1
set key inside right top vertical
set key autotitle columnheader
set boxwidth 0.9
configurations=5
plot for[i=0:(configurations-1):1] 'test.data' using 2+i*3:2+i*3+1:2+i*3+2:xtic(1) title col, for[i=1:(configurations-1):1] '' using ($0 - 1):2+i*3+2:(gprintf("%+-.0f%%", (column(2+i*3+0)/column(2+0*3+0)-1) * 100)) with labels center offset first (1 + (i - (configurations-1) / 2.0) / (configurations)), character 0.5 notitle
quit
数据文件test.data:
"" A A A B B B C C C D D D E E E
"Foo" 5.8058873543 5.7058873543 5.9058873543 5.6901595056 5.3101595056 6.2901595056 8.09519137 8.00519137 8.10519137 7.3446561007 7.2446561007 7.4446561007 9.2118493572 9.0118493572 9.3118493572
答案 0 :(得分:2)
在您的案例configurations
中,框宽度以及每个框的位置由1
的数量加上两个群集之间的差距大小给出。并且,不是将x位置放在offset
参数中,您也可以将其移动到using
语句。使用set xrange
限制左侧和右侧的间隙:
set style histogram cluster gap 1 errorbars
set style fill solid border -1
set key inside right top vertical
set key autotitle columnheader
set boxwidth 0.9 absolute
configurations=5
set xrange [-0.5:0.7]
plot for[i=0:(configurations-1):1] 'test.data' using 2+i*3:2+i*3+1:2+i*3+2:xtic(1) title col, \
for[i=1:(configurations-1):1] '' using ((i - (configurations-1) / 2.0) / (configurations + 1)):2+i*3+2:(gprintf("%+-.0f%%", (column(2+i*3+0)/column(2+0*3+0)-1) * 100)) with labels center offset 0, character 0.5 notitle