[英]Matplotlib/Pylab - part of plot disappears after setting log scale
我有一個小代碼,用此代碼生成以下圖片:
代碼1:
hist, rhist = np.histogram(r, bins=40, range=(0, 0.25))
hist = -hist/np.trapz(rhist[:-1],hist)
plt.plot(rhist[:-1], hist)
代碼1的輸出:
然后,我嘗試將繪圖設置為具有對數Y軸,以便我可以更清晰地識別小峰。 這就是結果。
代碼2:
hist, rhist = np.histogram(r, bins=40, range=(0, 0.25))
hist = -hist/np.trapz(rhist[:-1],hist)
plt.semilogy(rhist[:-1], hist)
代碼2的輸出:
如您所見,我的部分情節消失了。 有40個垃圾箱,但是我只能算出15個新箱。 任何幫助將不勝感激。 我正在使用最新版本的Enthought機蓋供學術使用。 E.
更新:我確實在這里找到了一個類似的問題,雖然很舊,死了而且還沒有答案。
我很確定它只是不繪制那些值,因為它們是零。
Log(0)=-無窮大
繪圖將使您的圖形看起來很垃圾。
在繪圖結束時發出plt.yscale('symlog')
。 有關'symlog'
的說明,請參見此處 。
在對數刻度上“顯示”零的常見視覺技巧是使用一個非常小的值:
plt.semilogy(rhist[:-1], hist+1e-6)
在這種情況下,請注意情節的正確解釋。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.