これは、この回答に対するフォローアップの質問です。正規化されたヒストグラムをプロットしようとしていますが、y 軸の最大値として 1 を取得する代わりに、異なる数値を取得しています。
配列 k=(1,4,3,1) の場合
import numpy as np
def plotGraph():
import matplotlib.pyplot as plt
k=(1,4,3,1)
plt.hist(k, normed=1)
from numpy import *
plt.xticks( arange(10) ) # 10 ticks on x axis
plt.show()
plotGraph()
このヒストグラムを取得しましたが、これは正規のようには見えません。
別の配列の場合 k=(3,3,3,3)
import numpy as np
def plotGraph():
import matplotlib.pyplot as plt
k=(3,3,3,3)
plt.hist(k, normed=1)
from numpy import *
plt.xticks( arange(10) ) # 10 ticks on x axis
plt.show()
plotGraph()
最大y値が10のこのヒストグラムを取得します。
異なる k の場合、normed=1 または normed=True であっても、y の最大値が異なります。
データに基づいて正規化が (機能する場合) 変更されるのはなぜですか? また、y の最大値を 1 にするにはどうすればよいですか?
アップデート:
私は、バーの高さがmatplotlibで合計1になるヒストグラムをプロットし、非常に奇妙な結果を得ることから、 Carsten Königの回答を実装しようとしています:
import numpy as np
def plotGraph():
import matplotlib.pyplot as plt
k=(1,4,3,1)
weights = np.ones_like(k)/len(k)
plt.hist(k, weights=weights)
from numpy import *
plt.xticks( arange(10) ) # 10 ticks on x axis
plt.show()
plotGraph()
結果:
私は何を間違っていますか?