2011-08-15 26 views
3

私はPythonでヒストグラムを作成する方法を知っていますが、それは確率密度分布であることを望みます。Pythonの確率分布関数

私の例から始めましょう。私は配列dを持っていて、サイズは500000要素です。次のコードを使用して、私の配列dの要素がすべてのビンの間にどれくらいあるかを示すヒストグラムを作成しています。

max_val=log10(max(d)) 
min_val=log10(min(d)) 

logspace = np.logspace(min_val, max_val, 50) 
H=hist(select,bins=logspace,histtype='step') 

問題はこのプロットが私が望むものではないということです。私は配列dの確率分布関数を持っていたいと思います。すべてのビン内にある配列の要素の数を持つ代わりに、それらのビンに入る可能性を持っていたいと思います。私はnormed = Trueで試しましたが、ログスペースが均等になるので動作していないようです。

+0

「50.0000」は50000を意味しましたか? 500000? – agf

+2

あなたはおそらく、numplからの 'histogram'ではなく、matplotlibから' hist'を使用しています。 –

答えて

2

あなたのhist機能が何であるかはっきりしません。 NumPyのhistogramを使用している場合は、density=Trueに設定してみてください。 http://docs.scipy.org/doc/numpy/reference/generated/numpy.histogram.htmlを参照してください。

+0

Matteoはおそらくnumplからのヒストグラムではなく、matplotlibの 'hist'を使用しています。 –

+3

はい、matplotlibのhistを使用しています。 TypeError:histogram()は予期しないキーワード引数 'density'を持っています – Brian

+0

このエラーも同様ですが、numpy 1.6.1に更新することで修正されました。 – rgbrgb

関連する問題