首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每条有不同错误条的matplotlib条形图

每条有不同错误条的matplotlib条形图
EN

Stack Overflow用户
提问于 2016-08-25 09:14:52
回答 1查看 1.1K关注 0票数 2

我试图创建一个条形图,显示每组95%的置信度区间。显然,由于它们是95%的置信区间,它们是不对称的。然而,我的问题是,我不能想出如何使每一个95%的CI酒吧不同的每一组(即。每个酒吧),很明显,每个酒吧都是不同的。

我的代码如下:

代码语言:javascript
复制
meanPassivePSE = np.mean(PSE_PASSIVE)
stdPassivePSE = np.std(PSE_PASSIVE)
meanActivePSE= np.mean(PSE_ACTIVE_HUMAN)
stdActivePSE = np.std(PSE_ACTIVE_HUMAN)
meanRoboticPSE=np.mean(PSE_ACTIVE_ROBOT)
stdRoboticPSE = np.std(PSE_ACTIVE_ROBOT)


#95%conf intervals

confInterval95Passive = stats.norm.interval(0.95, loc=meanPassivePSE, scale=stdPassivePSE/np.sqrt(len(PSE_PASSIVE)))
confInterval95Active = stats.norm.interval(0.95, loc=meanActivePSE, scale=stdActivePSE/np.sqrt(len(PSE_ACTIVE_HUMAN)))
confInterval95Robot = stats.norm.interval(0.95, loc=meanRoboticPSE, scale=stdRoboticPSE/np.sqrt(len(PSE_ACTIVE_ROBOT)))


conditions = 'Passive', 'Active Human', 'Active Robot'
yPos = np.arange(len(conditions))
PSE = [meanPassivePSE, meanActivePSE, meanRoboticPSE]


plt.bar(yPos, PSE, align='center', alpha=0.5, color=('g','b','r'), yerr = (????) )
#plt.errorbar(confInterval95Passive[0], confInterval95Passive[1])

plt.xticks(yPos,conditions)
plt.ylabel('Point of Subject Equality (ms)')
plt.title('Average Point of Subjective Equality in each Condition')
plt.show()

因此,例如:

代码语言:javascript
复制
`confInterval95Passive[0],confInterval95Passive[1] = 2.71596442574 4.13221200188`

但对于这三组中的每一组(被动的、主动的和机器人的),这些数据是不同的。那么,如何使条形图有三个不同的条形图,三个不同的、不对称的错误条呢?我认为它应该在'yerr=‘论点中处理?

谢谢你的帮助!!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-23 15:41:01

我这样解决了这个问题:

代码语言:javascript
复制
yerrs = [[meanPassivePSE-confInterval95Passive[0], confInterval95Active-confInterval95Active[0], confInterval95Robot-confInterval95Robot[0]],
[[confInterval95Passive[1]-meanPassivePSE, confInterval95Active[1]-confInterval95Active, confInterval95Robot[1]-confInterval95Robot]]
  • ax.errorbars使用值从平均值加/减
  • 因此,计算的置信区间需要用平均值进行赋范。
  • 稍后,在ax.errorbars上再次添加/减缩这些值。

现在可以将该参数放入bar()-method中。

代码语言:javascript
复制
plt.bar(yPos, PSE, align='center', alpha=0.5, color=('g','b','r'), yerr = yerrs )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39141205

复制
相关文章

相似问题

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