首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用pyplot在errorbar上限上方打印文本

使用pyplot在errorbar上限上方打印文本
EN

Stack Overflow用户
提问于 2018-08-02 08:29:27
回答 1查看 979关注 0票数 1

我目前正在制作一个有点简单的条形图,但我想在相应的条形图上方添加平均值和标准差文本。问题是,我的图表中的条形图的大小并不完全相同,所以我不能使用rectangle对象来定义高度。这样做会产生如下所示的图像:

当然,这是完全不可接受的,所以我一直在试图找到一种方法来做同样的事情,除了错误栏的盖子。

我当前的代码是:

代码语言:javascript
复制
bar = plt.bar(names, means, yerr=sterr, capsize=5, color=colors)
plt.yticks(np.arange(0,0.35,step=0.05))
plt.ylabel('Percentage of appearance')
plt.xlabel('Pot in question')   

# Add numbers in plot
for i, rectangle in enumerate(bar):
    height = rectangle.get_height()
    plt.text(rectangle.get_x() + rectangle.get_width()/2, height+0.01,
             '$\mu=$%s \n $\sigma=$%s' % (str(round(height,3))[1:], str(round(sterr[i],3))[1:]),
             ha='center', va='bottom')

plt.show()

新代码将用误差条形图的上限替换for循环中的矩形。

继续我的尝试,我打开了BarContainer对象,并找到了以下内容:

代码语言:javascript
复制
{'patches': [<matplotlib.patches.Rectangle object at 0x0000020C44BB8CF8>, <matplotlib.patches.Rectangle object at 0x0000020C44BB8FD0>, <matplotlib.patches.Rectangle object at 0x0000020C44BC6390>, <matplotlib.patches.Rectangle object at 0x0000020C44BC66D8>, <matplotlib.patches.Rectangle object at 0x0000020C44BC6A20>, <matplotlib.patches.Rectangle object at 0x0000020C44BC6DA0>, <matplotlib.patches.Rectangle object at 0x0000020C44BD4160>, <matplotlib.patches.Rectangle object at 0x0000020C44BD44E0>], 'errorbar': <ErrorbarContainer object of 3 artists>, 'eventson': False, '_oid': 0, '_propobservers': {}, '_remove_method': <function _AxesBase.add_container.<locals>.<lambda> at 0x0000020C3F71EF28>, '_label': '_container1'}

它有一个ErrorbarContainer对象,所以我试着打开它,显示如下:

代码语言:javascript
复制
{'lines': (None, (<matplotlib.lines.Line2D object at 0x0000020C44BD4DA0>, <matplotlib.lines.Line2D object at 0x0000020C44BD4EB8>), (<matplotlib.collections.LineCollection object at 0x0000020C44BD4860>,)), 'has_xerr': False, 'has_yerr': True, 'eventson': False, '_oid': 0, '_propobservers': {}, '_remove_method': None, '_label': '_nolegend_'}

但这些都没有给我任何关于如何继续进行的想法。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51643995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档