我被normed
參數從matplotlib.pyplot.hist困惑,爲什麼它不會改變劇情輸出:爲什麼matplotlib直方圖的`normed`參數不做任何事情?
如果真,返回元組的第一個元素將被標準化,形成一個概率密度的計數 ,即
n/(len(x)'dbin)
,即 ,積分的直方圖將總和爲1。如果stacked
也是如此, 的直方圖的總和標準化爲1默認值爲False
似乎非常清楚。我已經看到了稱爲密度函數,概率密度等
也就是說,在[0,10]中給出的尺寸1000的隨機均勻分佈:
指定normed=True
應該改變y軸的密度軸,那裏的酒吧之和爲1.0:
但實際上它根本不是那麼回事:
r = np.random.uniform(size=1000)
plt.hist(r, normed=True)
進而:
print(plt.hist(r, normed=True)[0].sum())
# definitely not 1.0
10.012123595
所以,我已經看到@Carsten柯尼希的answers到類似的問題,我不要求一個解決方法。我的問題是,那麼normed
的目的是什麼?我誤解了這個參數實際上做了什麼?
matplotlib documentation甚至給出了一個名爲「histogram_percent_demo」的例子,其中積分看起來會超過千分之一。
我不認爲這是不直觀的。由於[wikipeadia](https://en.wikipedia.org/wiki/Histogram)也指出:「用於概率密度的直方圖總面積總是標準化爲1.如果x軸上的間隔長度都是1,那麼直方圖與相對頻率圖相同。「所以你期望有一個相對頻率圖,但是'norm = True'的確是一個概率密度圖。 – ImportanceOfBeingErnest
[這裏](https://stackoverflow.com/questions/45805316/gaussian-mixture-models-of-an-images-histogram)是'normed = True'很有用的一個非常典型的例子 - 比較直方圖擬合概率分佈。規範直方圖允許兩個以相同的比例顯示 – unutbu