2011-12-13 13 views
0

私はちょうど整数カウントのセットを含むnumpy配列 "data"を持っています。別の配列 "bins"を与えられたら、私はちょうど少なくともビン[0] - 多数のカウント、少なくともビン[1] - 多数のカウントなどを持つ "data"の総エントリの割合の周波数プロット/ CDFを作成したいmatplotlibの棒グラフにします。例えば、次の場合matplotlibのpythonでディスクリートなカウントデータの有界CDFをプロットする

data = [1, 4, 5, 10] 
bins = [0, 5, 6, 7] 

結果は>、値、x軸および値> = 0を有するデータのその後の画分に、0を有している棒グラフである5、6、7べき= 5などmatplotlibに指定されたビンを持つこのような「離散」CDF棒グラフを作成するにはどうすればよいですか?ありがとう。あなたはmatplotlibのを使用している場合

+0

問題の本文は、CDFではなく1-CDFについて説明しています。それはタイトルを読んだ後にちょっと混乱します。 –

答えて

1

私はあなたにもnumpyのを使用していると仮定するので、あなただけのbins通過し、datas内のすべてのdataためdataようdata>binの割合を、うまくおよびbins内のすべてのbin用することができます。

これは仕事ができるその旨を:

import numpy as np 
# turn data into numpy array for easier manipulation 
data2 = np.array(data) 
n  = len(data2) 

# calculate fractions for each bin in bins 
# astype('float') because otherwise you end up doing integer arithmetic 
fracs = [ sum(data2>=bin).astype('float')/n for bin in bins ] 

は今だけ、例えば、fracsに対してbinsをプロット

+0

便宜上、 'numpy.cumsum'を参照してください。 –

+0

@SteveTjoa:cumsumは "bins"引数をとらないので、代わりにここでどのように使用できますか?それは関連しているようですが、あなたが素晴らしいと思う例があれば私はそれを見ることができません。 – user248237dfsf

関連する問題