2013-03-02 6 views
9

私はmatplotlib hist関数について混乱します。パイロットヒストグラムビンはどのように解釈されますか?

ドキュメントは説明する:

の値のシーケンスは、ビンの下限の値は、使用する場合。

しかし、私は2つの値、すなわち[0,1]を順番に並べると、1つのビンしか得られません。 そして、私は3そうのように持っている場合:

plt.hist(votes, bins=[0,1,2], normed=True) 

私は2つだけのビンを取得します。私の推測では、最後の値は最後のビンの上限です。

最後のビン内の値の「残りの部分」を持つ方法はありますが、そこには非常に大きな値がありますか? (言い換えれば、他の人よりもはるかに大きい、そのビンをせずに)

それは最後のビン値が最後のビン

votes = [0,0,1,2] 
plt.hist(votes, bins=[0,1]) 

これは私に高さ3の1つのビンを与えるに含まれているように思えます。すなわち0,0,1。 中:

votes = [0,0,1,2] 
plt.hist(votes, bins=[0,1,2]) 

は私に、それぞれに2つの2つのビンを与えます。 このカウンターは直感的で、新しいビンを追加すると他のビンの幅の制限が変更されます。

votes = [0,0,1] 
plit.hist[votes, bins=2) 

x軸は0から1

になるので、これらは0,5に分割されているようだ2つのビンサイズ2と1をyeilds

はどのようにビンアレイが解釈されるべきですか?データはどのように分割されますか?

+1

あなたは 'mpl'のどのバージョンを使用していますか?しばらく前に 'bin 'の意味を変更した' numpy'のhist関数に変更がありました。使用しているバージョンに合ったドキュメントを見ていることを確認することが重要です。 – tacaswell

+0

バージョン1.6.1を使用しています。メモをありがとうございます。 –

答えて

15
votes = [0, 0, 1, 2] 
plt.hist(votes, bins=[0,1]) 

それは間隔を持つ1つのビンにデータを分割しているため、これは、あなたに高さ3の1つのビンを与える:[0、1]。これは、そのビン値になります:0、0、および1

votes = [0, 0, 1, 2] 
plt.hist(votes, bins=[0, 1, 2]) 

これはあなたの間隔でビンとヒストグラムを与える:[0、1 [と[1、2]。 ので、第1のビンに2つのアイテム(0と0)、第2のビンに2つのアイテム(1と2)があります。

あなたがプロットしてみた場合:ビンにデータ分割の背後にある考え方は同じです

plt.hist(votes, bins=[0, 1, 2, 3]) 

: 次の3つの間隔を取得します: [0、1 [; [1、2 [; [2、3]と表示され、値2はbinを変更し、間隔[2、3]を持つbinに移動します(前の例のようにbin [1、2]のままではありません)。

結論として、bins引数に配列[i_0、i_1、i_2、i_3、i_4、...のような配列がある場合ビンを作成し、値In] :
[I_0、I_1 [
[I_1、I_2 [
[I_2、I_3 [
[I_3、I_4 [
...
[I_(N- 1)、i_n]

であり、括弧内にそれぞれの境界が開いているか閉じているかを示します。

+6

これをクリアするにはもう一つの方法として、ビンの端から '0.5'を引く(' votes'の値が整数であることが期待されるならば)、オープン/クローズドセットに関するこれらの詳細を片付けることができます。 – tacaswell

+0

また、オープン/クローズドセットの問題の詳細の超明確な説明のため+1。 – tacaswell

+0

明確な説明です。ありがとうございました! –

関連する問題