首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用matplotlib绘制非对称错误条

用matplotlib绘制非对称错误条
EN

Stack Overflow用户
提问于 2017-07-31 19:19:09
回答 1查看 2.1K关注 0票数 1

我试图绘制不对称错误栏,这实际上是95%的置信区间。我得到的输出不是期望的结果。我不知道代码的哪一部分没有产生预期的结果。

代码语言:javascript
复制
import numpy as np
import matplotlib.pyplot as plt


x = (18,20,22,24,26,28,30,32,34)
apo_average = (1933.877,1954.596,2058.192,2244.664,2265.383,2265.383,2306.821,2534.731,2576.169)
std_apo=(35.88652754,0,179.4326365,35.88652754,0,0,35.88652754,35.88652696,0)
error =  np.array(apo_average)
lower_error_apo=error-((4.303*(np.array(std_apo)))/np.sqrt(3))
higher_error_apo=error+((4.303*(np.array(std_apo)))/np.sqrt(3))
asymmetric_error_apo=[lower_error_apo, higher_error_apo]

fig = plt.figure()
ax = fig.add_subplot(111)
plt.scatter(x,apo_average,marker='o',label="0 Cu", color='none', edgecolor='blue', linewidth='1')
ax.errorbar(x,apo_average,yerr=asymmetric_error_apo, markerfacecolor='blue',markeredgecolor='blue')

结果是

这是相当出乎意料的。例如,我打算为第一个错误条设置一个较低的错误值为1844.723,这与图片中显示的内容不一致。这种趋势在每条错误栏中都保持不变。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-31 19:45:35

大多数情况下,它都有助于读取文献资料中的以下内容

xerr/yerr:标量或数组样,形状(N,)或形状(2,N),可选 如果标量数len(N)类数组对象或N元素类数组对象,则在+/-value 中绘制相对于数据的错误条。默认为无。 如果形状为2xN的序列,则在-row1和+row2 中绘制相对于数据的错误条。

因此,您需要直接使用从标准差中计算出来的值,而不是将它们从平均值中减去或添加到平均值中。

代码语言:javascript
复制
lower_error_apo=(4.303*(np.array(std_apo)))/np.sqrt(3)
higher_error_apo=(4.303*(np.array(std_apo)))/np.sqrt(3)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45423704

复制
相关文章

相似问题

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