3

我在 Matplotlib 中生成带有误差线的堆积条形图。不幸的是,一些层级相对较小,数据多样,因此多个层级的误差线可能重叠,使它们难以阅读或无法阅读。

例子:

示例截图

有没有办法为每个误差条设置位置(即沿着 x 轴移动它),所以重叠线显示在旁边而不是彼此之上?

4

1 回答 1

2

感谢 tcaswell 的评论,我想通了:诀窍是不在栏中包含错误栏(通过 yerr kword),而是分别绘制栏和错误栏。这样您就可以指定误差线的 x 和 y 位置。

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

从这里合并到绘图函数中,我的代码如下所示:

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]
于 2012-10-18T07:42:58.447 回答