[英]Why error bars in log-scale matplotlib bar plot are lopsided?
我正在嘗試 plot 一些條形圖,其中每個 y 值都是某些系列的平均值。 因此,我還嘗試為每個條添加誤差線(標准偏差)。
幅度通常看起來是正確的,即使是對數刻度,但是對於幾個條形,誤差條幾乎無限期地下降(- 方向),而 + 方向誤差是正確的幅度。 我不認為它只是對數縮放,但非常感謝任何輸入。 這是 plot 的鏈接
我已經檢查過,+ 方向誤差線是正確的,只是不確定它們為什么/如何偶爾下降到 x 軸。 下面是一個簡化的例子。
y = [99.79999999999997, 0.11701249999999999, 0.00011250000000000004, 0.013393750000000001,0.007743750000000001,
0.01, 0.033906250000000006, 0.0009687500000000002, 0.04187500000000001, 0.0218, 0.0018062499999999997, 0.0005187500000000001]
std =[0.013662601021279521, 0.1500170651403811, 3.4156502553198664e-05, 0.001310709095617076,0.0006239324215543433,
0.0, 0.0021671698133741164,0.0018750000000000001, 0.005302515126491074,0.007984401459512583,0.0006297817082132506,4.0311288741492725e-05]
plt.figure() # Powder plot
plt.bar(np.arange(len(y)), y, yerr=std)
plt.yscale('log')
'key_list' 只是將成為 x-tick 標簽的字符串列表。 'width' 是成對的條形偏移量。 'cm' 和 'kk' 只是列表的字典。 老實說,這似乎是一個渲染問題,但如果你們中的任何人遇到過這個問題,我會非常好奇。
您應該查看相對誤差,而不是嘗試 plot 標准偏差或任何其他可變性度量。
用一個例子來說明這一點:
在您的線性空間中,您將顯示 x +/- delta_x。
投影到你的對數空間中,它變成:log(x) +/- log(delta_x)。 但請記住 log(x) - log(y) = x/y。 因此,例如,您的非對稱誤差線。 如果您了解有關相對誤差的更多信息,您會發現一個合適的對稱誤差條。
享受你的學習:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.