簡體   English   中英

Matplotlib的條形圖顯示不均勻的條形

[英]Matplotlib's bar chart displays uneven bars

如果我們看這段代碼和x,y數據,

rects1 = plt.bar([0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,1],[1, 2, 4, 10, 5, 9, 1,4, 9, 9],edgecolor='black')
plt.xlabel('Sample Mean')
plt.ylabel('Probability')

這將顯示以下圖形
在此處輸入圖片說明

我不明白x值如何超過1甚至取負值。 另外,為什么棒的寬度不同?

問題是您的x值之間的間距為0.1,默認的條形寬度為1,因此您會看到重疊的條形。 解決方案是定義鋼筋寬度。 在您的情況下,條寬度小於0.1會很好地工作。 例如,您可以使用width=0.05 ,您將得到以下圖形。

為什么是負面的? :默認情況下,條形居中於0、1、2、3等。 因此,問題中的第一個條形圖以0為中心繪制,寬度為1。這就是為什么它在-0.5到+0.5范圍內的原因。

rects1 = plt.bar([0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,1],
                 [1, 2, 4, 10, 5, 9, 1,4, 9, 9], width=0.05, edgecolor='black')
plt.xlabel('Sample Mean')
plt.ylabel('Probability')

在此處輸入圖片說明

如果您不希望x <0處的柱線 :您可以通過傳遞參數align='edge來將柱線向右align='edge

rects1 = plt.bar([0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,1],
                 [1, 2, 4, 10, 5, 9, 1,4, 9, 9], width=0.05, align='edge', 
                 edgecolor='black')

在此處輸入圖片說明

暫無
暫無

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

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