9

この例を見てください:

 import matplotlib.pyplot as plt
 l = [3,3,3,2,1,4,4,5,5,5,5,5,5,5,5,5]
 plt.hist(l,normed=True)
 plt.show()

出来上がりは写真で掲載。2 つの質問があります。

a) 4 と 5 のビンだけがその値を中心にしているのはなぜですか? 他の人もそうではないでしょうか。それらを中央に配置するためのトリックはありますか?

b)ビンがプロポーションに正規化されていないのはなぜですか? すべてのビンの y 値の合計が 1 になるようにします。

私の実際の例には、リストにもっと多くの値が含まれていますが、それらはすべて離散的であることに注意してください。

ここに画像の説明を入力

4

1 に答える 1

16

関数のキーワード引数を調整する必要がありplt.histます。それらの多くがあり、ドキュメントはこれらの質問の多くに答えるのに役立ちます.

を。) キーワードbins=range(1,7)とを渡すことができalign=leftます。キーワードをシーケンスに設定するbinsと、各ビンの境界が表示されます。たとえば、[1,2], [2,3], [3,4], ..., [5, 6].

b. ) ビンの幅を確認します ( rwidth!=1)。matplotlib.pyplot.histドキュメントから:

True の場合、返されるタプルの最初の要素は、確率密度を形成するために正規化されたカウント、つまり n/(len(x)*dbin) になります。確率密度では、ヒストグラムの積分は 1 でなければなりません。確率密度関数の台形積分で確認できます。

rwidth=1これは、ビンの下の領域の合計が 1 になることを意味しますが、ビンの幅が 1 未満であるため、高さの合計が 1 にならないように高さが正規化されます。見栄えの良いプロット:

plt.hist(l, bins=range(1,7), align='left', rwidth=1, normed=True)
于 2013-07-03T15:13:35.543 に答える