Errorbar 不在数据处
Errorbar not at the data
我在使用 pyplot
中的 errorbar
函数时遇到问题。它在看似随机的位置绘制误差线,我不明白为什么。
这是我正在使用的:
def PlotResults(X,Y,ErrorBarUp,ErrorBarDown,Header='',xLabel='',yLabel='',Bool=1):
fig,ax = plt.subplots()
plt.plot(X,Y/Y,color='r',label='1:1 - Linie')
plt.plot(X, Y,marker='d',color='b',label='S_j/C_j')
plt.errorbar(X,Y,xerr=None,yerr=[ErrorBarDown,ErrorBarUp],fmt='',color=c,capsize=2,elinewidth=0.5)
使用这个例子:
x = 1+np.arange(0,1,0.01)
y = 1+np.exp(-x)
yerr = 0.1*np.sqrt(x)+0.1
xerr = yerr-0.5
PlotResults(x,y,xerr,yerr,'Hallo','x-Achse','y-Achse',False)
我得到以下内容
然而,误差线应该在蓝点上!
有什么建议,出了什么问题?
yerr
参数应该是非负的。如果它们是负数,它们将在您的 "plot" 的另一侧结束,就像您的示例中发生的那样。您的行的偏移量只是 ErrorBarUp
.
如果我只是将其更改为在第二个 y 错误上使用 abs()
,它就会起作用。至少看起来它确实有效:
plt.errorbar(X,Y,yerr=[ErrorBarDown,abs(ErrorBarUp)],fmt='',color='c',capsize=2,elinewidth=0.5)
我在使用 pyplot
中的 errorbar
函数时遇到问题。它在看似随机的位置绘制误差线,我不明白为什么。
这是我正在使用的:
def PlotResults(X,Y,ErrorBarUp,ErrorBarDown,Header='',xLabel='',yLabel='',Bool=1):
fig,ax = plt.subplots()
plt.plot(X,Y/Y,color='r',label='1:1 - Linie')
plt.plot(X, Y,marker='d',color='b',label='S_j/C_j')
plt.errorbar(X,Y,xerr=None,yerr=[ErrorBarDown,ErrorBarUp],fmt='',color=c,capsize=2,elinewidth=0.5)
使用这个例子:
x = 1+np.arange(0,1,0.01)
y = 1+np.exp(-x)
yerr = 0.1*np.sqrt(x)+0.1
xerr = yerr-0.5
PlotResults(x,y,xerr,yerr,'Hallo','x-Achse','y-Achse',False)
我得到以下内容
然而,误差线应该在蓝点上!
有什么建议,出了什么问题?
yerr
参数应该是非负的。如果它们是负数,它们将在您的 "plot" 的另一侧结束,就像您的示例中发生的那样。您的行的偏移量只是 ErrorBarUp
.
如果我只是将其更改为在第二个 y 错误上使用 abs()
,它就会起作用。至少看起来它确实有效:
plt.errorbar(X,Y,yerr=[ErrorBarDown,abs(ErrorBarUp)],fmt='',color='c',capsize=2,elinewidth=0.5)