2012-10-17 46 views
1

的中心我生成在Matplotlib堆叠条形图errorbars。不幸的是,一些层级的相对较小,数据多样,让里三层外三层的errorbars可以重叠,使他们很难或无法读取。地点Matplotlib errorbars NOT在酒吧

实施例:

example screenshot

有一种方法设定每个errorbar的位置(即,移动它沿x轴),所以显示旁边,而不是在顶部的重叠线彼此?

+3

我不知道如何使用'bar'做到这一点,但你可以把他们在任何你想使用'errorbar' ,像'errorbar(x_offsets + bar_x,cumsum(bar_heights),y_err)' – tacaswell

+0

@tcaswell:谢谢,那差我在正确的轨道上 – Lastalda

回答

1

感谢tcaswell的评论,我想出了它: 诀窍是不包括酒吧中的错误条(通过yerr kword),但分别绘制酒吧和错误栏。这样您可以指定错误栏的x和y位置。

它还有助于清晰绘制errorbars向上仅用yerr= numpy.vstack([[0]*len(std), std])

结合进here我的代码绘图功能如下:

for j in range(set_count): 
    tmp_accum = numpy.zeros(len(props[0])) 
    for k in range(len(props)): 
     ax1.bar(ind + j*b_width, props[k][set_label==j], width=b_width, color=color_sets[j][k], bottom=tmp_accum[set_label==j],label=labels[k]) 
     ax1.errorbar(ind + j*b_width +(1+k)*0.01, props[k][set_label==j]+tmp_accum[set_label==j],yerr= numpy.vstack([[0]*1, std_devs[k][j]]), ecolor="black",elinewidth =3) 
     tmp_accum += props[k]