私は、x、y平面上のランダムな散乱データを含むデータファイルを持っています。私が望むのは、散らばった領域を単色で塗りつぶすことだけです。私のデータはソートされていません。私はmatplotlibでscatterplotを使用しようとしましたが、データファイルのポイント数がかなり多いので、散布図をプロットすると結果として得られるプロットがかなり大きくなります。散乱データは、x、y平面上の小さな島を形成する。matplotlibの散在領域を埋める方法は?
答えて
import numpy as np
import matplotlib.pylab as plt
x=np.random.rand(10)
y=np.random.rand(10)
plt.figure()
plt.fill(x,y,'b')
plt.show()
二行
matplotlib documentation of them both間に充填するfill_betweenあなたはxのヒストグラム(2D)、numpyののhistogram2d方法を使用してyの値を算出することができるもあります。次に、0でないすべてのビンについて真であり、すべてのゼロビンに対してfalseである配列をプロットします。 bins
パラメータを使用して、ヒストグラムの解像度を制御できます。このメソッドは、3つの配列からなるタプルを返します.2次元ヒストグラムと2つの1D配列が各「エッジ」(xとy)に沿ってビンステップに対応します。ステップ値はrange
パラメータを使用して制御できます。で
import matplotlib.pyplot as plt
import numpy as np
np.random.seed(101)
x = np.random.normal(0,1,10000)
y = np.random.normal(0,1,10000)
hist,xedge,yedge= np.histogram2d(x,y,bins=100,range=[[-4,4],[-4,4]])
plt.imshow(hist==0,
origin='lower',
cmap=plt.gray(),
extent=[xedge[0],xedge[-1],yedge[0],yedge[-1]])
plt.savefig('hist2d.png')
plt.show()
これは、結果:たとえば
を使用すると、任意のデータを持っているところ
黒い点が示すデータが存在しない場合には、白点です。ヒストグラムは、画像または行列のプロットに使用されるimshow
メソッドを使用して表示されます。デフォルトでは原点が左上に設定されるので、パラメータorigin='lower'
を変更するか、範囲値を制御するextent
パラメータを適切に調整します。[intial x、final x、initial y、final y ]。 color mapを調整して配色を制御できます。
@joaquinはコメントで述べているように、あなたはまた、単に0または1
+1 'plt.imshow(hist)'だけでヒートマップを作ることができます。多分、yes/noだけでなく各ポイントで密度感覚を与えるので、OPはそれをより好きかもしれません。 – joaquin
+1しかし、ヒストグラム2dは多数のポイントに対して非効率的です。あなたが数万点以上の点で使用すると、あなたは記憶の問題にぶつかります。 'scipy.sparse.coo_matrix'を反復するかトリックする方がずっと速くなります。 –
私の前のコメントを部分的にスクラッチしていますが、たくさんの点があってもビン数が少ないとかなり速くなります。多数のビンと多数のポイントがある場合は、他のソリューションより効率が悪くなります。また、私の非効率的な記憶は、もっと初期のバージョンに基づいていました。最近のバージョンのnumpyの場合でも、それはまだかなり効率的です。 –
- 1. カスタムタイトルバーはタイトルバー領域を埋めない
- 2. matplotlibの領域の補完
- 3. 埋め込みマップに領域の境界線を表示する方法
- 4. matplotlibのカーブの下の領域を陰影付けする方法
- 5. Matplotlibの閉じた領域をどのように埋めることができますか?
- 6. PHPを使用してテキスト領域を埋める
- 7. WPF TextBoxを2つのボタンの間にあるすべての空き領域を埋める方法は?
- 8. FlowLayoutの空き領域を埋めてください
- 9. WPF:空き領域を埋めるためにGroupBoxのコンテンツを取得する
- 10. GWTのレイアウトは、画面領域全体を埋めるのですか?
- 11. ステージング領域の現在の状態を保存する方法は?
- 12. 2色領域の表示方法は?
- 13. クリックした領域の代わりに領域を選択する方法
- 14. グラフ領域を色で塗る方法
- 15. テキスト領域をオートフォーマットテキストにする方法
- 16. MVC4の領域にリンクする方法
- 17. WPFでは、tabItemのコンテンツを空き領域に埋め込む方法を教えてください。
- 18. 埋め込みmatplotlibのC++
- 19. Ajaxレスポンスで埋められるHTMLテキストボックスまたはスクロールバー付き領域
- 20. 文字列の離散領域からの連続カラースケール?
- 21. QTableWidgetの列を最大の領域にする方法は?
- 22. WPF ListBox ItemTemplate:コンテンツを空き領域に埋め込む方法を教えてください。
- 23. matplotlibの離散カラーバー
- 24. matplotlibの散布図
- 25. iOSでポリゴンの物理領域を計算する方法は?
- 26. C#で領域の内容をインデントする方法は?
- 27. イメージテンプレートの記憶領域を見つける方法は?
- 28. 子コントロールの透過領域をペイントする方法は?
- 29. 通知領域の位置を検出する方法は?
- 30. RとGviz:プロットの領域を削除(/トリミング)する方法は?
あなたは等高線図を使用することができますのではなく、値(ヒートマップ)の全範囲を見るために
imshow(hist)
をプロットすることができますか?たとえば、['matplotlib.pyplot.contourf'](http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.contourf)を参照してください。 – Chris