[英]Why are the columns in the matplotlib histogram not on top of the numbers
簡短回答:不應該,而是使用plt.bar() 。 如需更長的解釋,請閱讀下文。
直方圖的目的是近似數據的分布。 例如
import numpy as np
plt.hist(np.random.normal(3, 7, 100))
這使
現在,當你的數據少得多時,它的價值是 integer,然后調用
plt.hist([1, 1, 2, 2, 2, 2, 3])
您還可以獲得所提供數據分布的近似值。 使用默認參數,它看起來像這樣:
hist 的文檔告訴我們
bins
,它將默認為 10。range
,它將默認為您的數據的最小值和最大值因此,您的數據將被放入 10 個 bin 中,最小值為1
,最大值為3
。 這些垃圾桶將
In [45]: np.linspace(1,3, 11)
Out[45]: array([1. , 1.2, 1.4, 1.6, 1.8, 2. , 2.2, 2.4, 2.6, 2.8, 3. ])
由於您只有 bin 1.0 - 1.2
和2.0 - 2.2
2.8 - 3.0
的數據,您將看到三個條以1.1
和2.9
2.1
中心。
如果您的數據是 integer(分類)值,例如
degrees = [1, 1, 2, 2, 2, 2, 3]
並且您想知道這些類別的相對大小,您可能想創建一個條形圖 plot 。
import matplotlib.pyplot as plt
from collections import Counter
degrees = [1, 1, 2, 2, 2, 2, 3]
counts = Counter(degrees)
plt.bar(counts.keys(), counts.values())
plt.show()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.