Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python matplotlib条形图,每个条形图具有不同的错误条_Python_Matplotlib_Bar Chart_Analysis - Fatal编程技术网

Python matplotlib条形图,每个条形图具有不同的错误条

Python matplotlib条形图,每个条形图具有不同的错误条,python,matplotlib,bar-chart,analysis,Python,Matplotlib,Bar Chart,Analysis,我试图创建一个条形图,显示每组95%的置信区间。显然,由于它们是95%的置信区间,它们是不对称的。然而,我面临的问题是,我无法解决如何使每个组(即每个条)的95%CI条不同,因为显然每个组的CI条不同 我的代码如下: meanPassivePSE = np.mean(PSE_PASSIVE) stdPassivePSE = np.std(PSE_PASSIVE) meanActivePSE= np.mean(PSE_ACTIVE_HUMAN) stdActivePSE = np.std(PSE_

我试图创建一个条形图,显示每组95%的置信区间。显然,由于它们是95%的置信区间,它们是不对称的。然而,我面临的问题是,我无法解决如何使每个组(即每个条)的95%CI条不同,因为显然每个组的CI条不同

我的代码如下:

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()
例如:

`confInterval95Passive[0],confInterval95Passive[1] = 2.71596442574 4.13221200188`
但对于三组(被动、主动和机器人)中的每一组,这些统计数据都是不同的。那么,我如何使条形图有三个不同的条,三个不同的不对称误差条?我想应该在'yerr='参数中处理它


谢谢你的帮助

我这样解决了这个问题:

yerrs = [[meanPassivePSE-confInterval95Passive[0], confInterval95Active-confInterval95Active[0], confInterval95Robot-confInterval95Robot[0]],
[[confInterval95Passive[1]-meanPassivePSE, confInterval95Active[1]-confInterval95Active, confInterval95Robot[1]-confInterval95Robot]]
  • ax.errorbars使用值来添加/减去平均值
  • 因此,计算出的置信区间需要通过平均值进行规范化
  • 稍后ax.errorbars会再次添加/减去这些值
现在可以将参数放入bar()方法中

plt.bar(yPos, PSE, align='center', alpha=0.5, color=('g','b','r'), yerr = yerrs )