2017-09-07 21 views
1

pyploterrorbar機能に問題があります。一見無作為な位置にエラーバーを描いているので、なぜその理由が分かりません。データにエラーバーがありません

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) 

私は、次のplot

エラーバーは、しかし、青色のポイントにする必要があり得る

これは私が使用しているものです!

何か問題がありますか?

答えて

2

yerr引数は負でない必要があります。彼らが否定的な場合、彼らはあなたの例で起こったように、あなたの "プロット"の反対側で終わるでしょう。あなたのラインへのオフセットはちょうどErrorBarUpでした。

2番目のyエラーでabs()を使用するように変更しただけで動作します。それは仕事をしたように少なくとも、それが見えます:

plt.errorbar(X,Y,yerr=[ErrorBarDown,abs(ErrorBarUp)],fmt='',color='c',capsize=2,elinewidth=0.5) 

enter image description here

関連する問題