簡體   English   中英

使用Python的對數刻度圖中的誤差線

[英]Error bars in a logarithmic scale plot with Python

我正在處理一個很長的代碼,生成下面的

問題在於誤差條的長度由於對數刻度而改變,我希望它們的長度彼此相等,即具有固定的長度。 有什么方法可以使用Python輕松做到這一點?

編輯:這是代碼的一部分,我在其中生成錯誤欄。

faztec=[11.4,11.4,7.1,7.7,6.8,6.9,6.2,7.5,5.5,4.0,3.5,3.2,2.9,2.9]
flaboca=[9.8,7.3,6.8,8.2,6.8,8.1,6.7,11.0,10.6,4.2,7.0,7.1,5.0,5.3]

err1 = [1.5,1.5,1.7,1.8,1.4,1.5,1.7,3.0,2.7,1.4,1.9,1.9,1.4,1.8]
err2 = [0.7,0.7,0.7,0.8,0.7,0.7,0.7,0.9,0.7,0.7,0.7,0.7,0.7,0.7]

newErr1x = []
newErr1y = []

for i in range(0, len(y)):
    x1 = x[i]
    y1 = (flaboca[i]-err1[i])/(faztec[i]+err2[i])
    x2 = x[i]
    y2 = (flaboca[i]+err1[i])/(faztec[i]-err2[i])
    pl.plot([x1, x2], [y1, y2])
    correction = False
    # when end of segment is near 0, we must change it (because of logx)
    if x2 < endBarLen:
        x2 = 0.03
        endBarLen = endBarLen / 10
        correction = True
    pl.plot([x1+endBarLen, x2-endBarLen], [y1, y1], '-k')
    pl.plot([x1+endBarLen, x2-endBarLen], [y2, y2], '-k')
    if correction:
        correction = False
        endBarLen = endBarLen*10
pl.show()

您可能會將數組作為錯誤傳遞,但如果希望它們的長度相同,則應為每個錯誤欄傳遞相同的值。 似乎y軸不是對數刻度-如果希望將值從對數空間轉換為線性空間,則可以采用誤差數據的指數或對數進行相應調整。 如果提供更具體的信息,我將能夠提供更具體的答案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM