2016-06-26 12 views
0

私はデータを分析し、各データに対して値(0と2の間)を生成し、いくつかのデータを削除しますアルゴリズムに基づいて、分析および値の生成を繰り返す。データの各段階で、データログの累積頻度ヒストグラムを生成し、y軸が0から1(0%から100%を意味する)になるように生成された値の特定の範囲でスパイクを視覚化するのを助けます。 x軸が0から2(可能な値の範囲)になるので、折れ線グラフの急な勾配は、このfrequency histogram exampleのように、急峻な勾配が生じる特定の領域にわたって多数の値を示す。 (ヒストグラムのスパイクが累積グラフのスロープになっていることに注意してください)Pyplotの累積度数ヒストグラムはゼロ値データのフルグラフをプロットしません

私の問題は、グラフを生成するとき、その値に対して生成された零点のみを持つデータの累積度数ヒストグラムがa上の直線をy=1とすると、数値の100%がその特定のプロットの値が0であることを示しますが、代わりにx=0からx=0.5になるようなy=1の行が表示されます(graph参照)。 x=0からx=2まで、y=1に向かって行が必要です。ここで、上記連結グラフの描画時に記録されたそれの値は、

# Calculate histogram and bins 
hist_, bins_ = np.histogram(e.real, bins = 500, normed=0) 
cuml = np.cumsum(hist_) 
# Plot and normalize data range by dividing values 
plt.plot(bins_[:-1], np.divide(cuml,float(max(cuml))) , label=str(rem_) + ' removed', marker = markr.next(), markevery = 9) 
# Limit axis ranges to possible values 
plt.xlim(0, 2) 
plt.ylim(0, 1) 

e.realが生成された値を保持するリストオブジェクトである:ここ

はプロットを生成するコードです。

200 removed 
[ 2. 0. 2. 0. 2. 0. 2. 0. 2. 0. 2. 0. 2. 0. 2. 0. 2. 0. 
    2. 0. 2. 0. 2. 0. 2. 0. 2. 0. 2. 0. 2. 0. 2. 0. 2. 0. 
    2. 0. 2. 0. 2. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 
    0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 
    0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 
    0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 
    0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 
    0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 
    0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 
    0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 
    0. 0. 0.] 
300 removed 
[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 
    0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 
    0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 
    0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 
    0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.] 
382 removed 
[ 0.] 

取り外した200で、ログイン値グラフに見ることができるようグラフは、nの約80%を可視化数字は0の値(x=0から始まるy=0.9の線で示される)を有し、残りは2の値を有する(y=0.9からy=1へ行くプロットによって示される、x=2)。と除去382を除去300のプロットでは、ログは値の100%がゼロであることを示し、グラフはx=0始まる代わりの短い線を示すy=1横切る線でそれを確認しなければならないことのみx=0.5に行きます。

(注意:300はを削除382を削除し、同じグラフを持ち、短い線を形成するために重畳され、重複は正しい動作です)

私のラインの長さを修正する方法上の任意のアイデア?どんな助けもありがとうございます。

+0

範囲オプションを使用してみてください、ビンの順序を指定すると、ビンの数をエッジの代わりに、グラフを作ることができるようになりますあなたは欲しい。私は他のデータセットでそれを試しませんでした。すべてのデータセットに対して同じビンエッジが必要なようです。 '' 'bins = np.linspace(0,2,500)' '' then '' 'h、b = np.histogram(data、bin = bins、normed = 0)' '' – wwii

答えて

1

が `` `300 removed```データ・セットのnp.histogram

hist_, bins_ = np.histogram(e.real, bins = 500, range = (0, 2), normed=0) 
関連する問題