簡體   English   中英

Matplotlib / Pylab-設置對數刻度后,部分繪圖消失

[英]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.

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