2013-04-05 6 views
11

pyplot.hist()ドキュメントでは、ヒストグラムの範囲を設定するときにに「下限と上限のアウトライヤーは無視されます」と指定されていますpyplot.hist()の最初と最後のビンにはアウトライヤーが含まれています

ヒストグラムの最初と最後のビンにすべての外れ値を含めることができますビンの幅を変更せずに

たとえば、0-3の範囲を3つのビンで表示したいとします:0-1, 1-2, 2-3(簡略化のために完全一致の場合は無視してみましょう)。最初のビンにマイナス無限大から1までのすべての値を、最後のビンに2から無限大までのすべての値を含めることを希望します。しかし、これらのビンをその範囲に明示的に設定すると、非常に広いものになります。私は彼らに同じ幅を持たせたいと思います。私が探している動作は、Matlabのhist()の動作に似ています。

明らかに私はnumpy.clip()データとそれをプロットすることができます。しかし、このための組み込みのソリューションがあれば興味があります。

+4

サウンズ( 'numpy.clip(); pyplot.hist()')、あなたはワンライナーをしたいと思います。私は 'hist'の' clip'キーワードがいいと思うのですが、これはとても基本的なので、誰もこれを実装するのに気にしていないと思います。もちろん、いつでもmatplotlibにパッチを提出することができます:-)。 – Evert

+1

はい、@Evertが正しいです、クリップが最適なソリューションです。 'pyplot.hist()'は注意深く注釈をつけないと誤ったプロットを生成するため、おそらくこれを作成しないと言います。 – askewchan

+0

@Evert ok、ありがとう。私はちょうど私がこの動作を得るためのよりよい解決策を見逃しているわけではないことを知りたかったのです。 – Bitwise

答えて

6

いいえ。matplotlib.axes.Axes.histを見て、numpy.histogramを直接使用しています。私は、ヒストグラムでビンを伸ばす以外にクリップを使用するよりもスマートな解決策はないと言うことはかなり自信があります。

私が(確かHISTは、Axesの方法のほとんどよりも多少複雑ですが、それは、単にPythonのコードです)matplotlib.axes.Axes.histのソースを見ることをお勧めしたい - それは質問のこの種を確認する最良の方法です。あなたは2行のソリューションを持っているよう

HTH

関連する問題