matplotlibのhist()関数について質問があります。
値が0から1まで変化するデータのヒストグラムをプロットするコードを書いています。例:
values = [0.21, 0.51, 0.41, 0.21, 0.81, 0.99]
bins = np.arange(0, 1.1, 0.1)
a, b, c = plt.hist(values, bins=bins, normed=0)
plt.show()
上記のコードは正しいヒストグラムを生成します(十分な評判がないため、画像を投稿できませんでした)。周波数に関しては、次のようになります。
[0 0 2 0 1 1 0 0 1 1]
この出力を離散確率質量関数に変換したいと思います。つまり、上記の例では、次の周波数値を取得したいと思います。
[ 0. 0. 0.333333333 0. 0.166666667 0.166666667 0. 0. 0.166666667 0.166666667 ] # each item in the previous array divided by 6)
hist()関数のパラメーターを「normed=1」に変更するだけでよいと思いました。ただし、次のヒストグラム頻度が得られます。
[ 0. 0. 3.33333333 0. 1.66666667 1.66666667 0. 0. 1.66666667 1.66666667 ]
これは私が期待していることではなく、合計が1.0である離散確率質量関数を取得する方法がわかりません。次のリンク(質問へのリンク)でも同様の質問がありましたが、問題は解決しなかったと思います。
よろしくお願いします。