我遇到了這個有趣的問題,用matplotlib的錯誤條。我有兩個列表: 「迭代」,它是一個範圍從0到999的整數值列表;和「平均」,這是1000個大小的列表與真正的負值。matplotlib錯誤條連續線圖
如果我不指定 「yerr」 屬性,我得到:
errorbar(迭代,平均)
但是,如果我指定yerr屬性,但設置爲0,我得到以下內容:
errorbar(iterations,average,yerr = 0)
它似乎很明顯,我認爲這兩個圖片應該是相同的,但第二個是由小的水平線,而第一個似乎連續的。
當我將一個數組作爲yerr(大小:1000,所有值設置爲0,除了一些真正的std-錯誤值,其中索引%50 == 0,爲了不過度擁擠圖像)傳遞的問題。
errorbar(迭代,平均值,yerr =標準錯誤)
我想獲得的圖像,其中主線是連續的(如在第一圖像中),而是我得到一個凌亂的圖像,如第二個。我已經嘗試了很多東西,比如修改linestyle參數,但是我仍然繼續像第一個圖像一樣(每50步間隔有一個錯誤條)
我做錯了什麼?是否有可能做我想做的事。
更新1
當大衛在評論中說,該水平線出現,因爲這是一個標準錯誤的默認形狀爲0。我認爲0值將描繪不errorbar。所以我只需要避免在那裏設置誤差條,將其設置爲0(誤差線僅在50,100,150,200,250 ... 1000)。
更新2(和解決)
這裏添加大衛提出的解決方案:
# plot all points without error bars
plot(iterations, average)
# plot errorbars for every 50th point
errorbar(iterations[::50], average[::50], yerr=stderr[::50], linestyle='None')
我只是增加了線型= '無',以避免繪製每個yerr條之間的界線。
非常感謝!
只是增加我得到當我把一個真實的yerror陣列圖像:HTTP:// i.stack.imgur.com/PtfOH.png – user899000 2013-03-22 13:42:56