6

私は〜300kデータポイントの散布図を生成していますが、いくつかの場所で混雑しすぎて構造が見えないという問題があります-だから私は考えました!

プロットで最も密度の高い部分の等高線図を生成し、密度の低い領域をscatter()データ ポイントのままにしたいと考えています。

そのため、各データポイントの最近傍距離を個別に計算しようとしていました。この距離が特定の値に達したら、等高線を描画して塗りつぶし、はるかに大きな値 (密度が低い) に達したら、次のことを行います。散ら...

私は数日間試行錯誤してきましたが、この場合、従来の等高線図が機能するかどうかはわかりません。

私はコードを提供しますが、それは非常に面倒で、おそらく問題を混乱させるだけです. そして、計算量が非常に多いため、機能したとしてもおそらく私のPCがクラッシュするでしょう!

よろしくお願いします!

ps私は答えを探して探していました!私は、それがもたらしたすべての結果に対してさえ不可能であると確信しています!

編集:つまり、これのアイデアは、300kサンプルの構造内の特定のポイントがどこにあるかを確認することです. これがプロットの例です。私のポイントは3つの差分に散らばっています。色。 データの分散バージョン

データから 1000 個のデータポイントをランダムにサンプリングし、テキスト ファイルとしてアップロードしようとします。乾杯スタッカー。:)

編集:ねえ、ここにいくつかのサンプルデータがあります1000行-2列[X,Y](または[g-i,i]上記のプロットから)スペースで区切られています。皆さん、ありがとうございました! データ

4

3 に答える 3

1

これは、さまざまな numpy/scipy/matplotlib ツールで実現できます。

  1. scipy.spatial.KDTree高速検索用に元のポイントを作成します。
  2. np.meshgrid等高線に必要な解像度で点のグリッドを作成するために使用します
  3. KDTree.queryターゲット密度内にあるすべての位置のマスクを作成するために使用します
  4. 長方形のビンまたは のいずれかを使用して、データをビンに入れますplt.hexbin
  5. ビニングされたデータから等高線をプロットしますが、ステップ 3 のマスクを使用して低密度領域を除外します。
  6. マスクの逆をplt.scatter残りのポイントに使用します。
于 2013-10-29T19:58:56.403 に答える