警告:我很擅长使用python。
我正在尝试使用错误条来绘制数据,但我的数据对于条形图上方和下方的错误具有不同的值,即2 + .75,2-.32。
import numpy as np
import matplotlib.pyplot as plt
# example data
x = (1,2,3,4)
y = (1,2,3,4)
# example variable error bar values
yerr = 0.2
plt.figure()
plt.errorbar(x, y, yerr,"r^")
plt.show()
但是我希望点上方的误差条是特定的值,如.17,并且点之下是特定点,如.3 有谁知道怎么做?
谢谢!
答案 0 :(得分:5)
像这样:
plt.errorbar(x, y, np.array([[0.3]*len(x), [0.17]*len(x)]), fmt='r^')
传递一个形状(2,n)
的数组,第一行包含-errors,第二行包含+错误。
(另请注意,您需要将格式字符串r^
显式传递给fmt
参数。
如果你想在每个点上使用不同的误差线,你可以在这个(2,n)
数组中传递它们。您通常按顺序为每个数据点都有一个-err和+ err值对的列表,在这种情况下,您可以构建必要的数组作为此列表的转置:
yerr = np.array([(0.5,0.5), (0.3,0.17), (0.1, 0.3), (0.1,0.3)]).T
plt.errorbar(x, y, yerr, fmt='r^')
plt.show()
在the docs中描述(或多或少)。