Python中Matplotlib库的不对称误差条绘制

3
尝试绘制从负值到正值的非对称误差棒时遇到错误。 我修改了文档中的示例:
import numpy as np
import matplotlib.pyplot as plt

# example data
x = np.arange(0, 4, 1)
y = -0.2* x


# example error bar values that vary with x-position
error = 0.1 + 0.2 * x

# error bar values w/ different -/+ errors that
# also vary with the x-position
lower_error = -1 * error
upper_error = 4* error
asymmetric_error = [lower_error, upper_error]

plt.errorbar(x, y, yerr=asymmetric_error, fmt='.', ecolor = 'red')
plt.show()

生成以下图表:

enter image description here

但是使用以下不对称误差值:

array([-0.1, -0.3, -0.5, -0.7]), array([0.4, 1.2, 2. , 2.8])]

这似乎遵循文档,因此我不确定是什么原因导致了这个结果。

1个回答

7
您不需要在较低误差前面加上否定词。
import numpy as np
import matplotlib.pyplot as plt

# example data
x = np.arange(0, 4, 1)
y = -0.2* x


# example error bar values that vary with x-position
error = 0.1 + 0.2 * x

# error bar values w/ different -/+ errors that
# also vary with the x-position
lower_error =  error
upper_error =  4*error
asymmetric_error = np.array(list(zip(lower_error, upper_error))).T

plt.errorbar(x, y, yerr=asymmetric_error, fmt='.', ecolor = 'red')
plt.show()

输出:

在此输入图片描述


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接