python 中的 Matplotlib 非对称误差条绘图
Matplotlib asymmetric errorbar plotting in python
运行 在尝试绘制从负值到正值的不对称误差条时出错。我修改了从文档中获取的示例:
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()
给出了以下情节:
但具有以下非对称错误值:
array([-0.1, -0.3, -0.5, -0.7]), array([0.4, 1.2, 2. , 2.8])]
这似乎遵循文档,所以我不确定是什么原因造成的。
你不需要在下误差前面加负数。
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()
输出:
运行 在尝试绘制从负值到正值的不对称误差条时出错。我修改了从文档中获取的示例:
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()
给出了以下情节:
但具有以下非对称错误值:
array([-0.1, -0.3, -0.5, -0.7]), array([0.4, 1.2, 2. , 2.8])]
这似乎遵循文档,所以我不确定是什么原因造成的。
你不需要在下误差前面加负数。
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()
输出: