1

crossfilterを使用して散布図でブラッシングを行うことを考えていますが、その方法が明確ではありません。標準的な例と、マイクの散布図マトリックス ブラッシングd3 コードも非常に注意深く調べました。

特に、私の問題は次のとおりです。

  1. クエリ: 2 次元クエリを実行してクロスフィルター処理する方法がわかりません。私はただすべきですか:

    を。2 つの 1-d クエリを実行し、自分で結果を交差させますか?

    b. 単一の 2-d ディメンション (つまり のようなものdata.dimension(function(d){ return [d.x, d.y];})) を作成し、それにカスタム フィルター関数を使用しますか?

  2. パフォーマンス: 散布図を描画するのに約 150 ミリ秒かかります (ヒストグラムの場合は約 10 ミリ秒)。これにより、(クエリが高速であっても)ライブ更新がうまくいきません。
4

3 に答える 3

2

DC.js の使用を検討しましたか?

DC.jsは、D3.js を拡張し、クロスフィルターをサポートする Javascript チャート ライブラリです。散布図にはまだ試していませんが、棒グラフに使い始めたばかりです。サブセットをインタラクティブにフィルタリングおよびズームインでき、クロスフィルターを使用すると高速です。

于 2013-08-03T03:45:07.727 に答える
1
  1. クエリ

    を。2 つの 1-d クエリ。Adams のコメントと同じです。Crossfilter は、1 次元データでより高速になります。

  2. レンダリング

これのほとんどは、クエリ自体よりもレンダリングに関係していると思います。Adam はいくつかの素晴らしい点を挙げましたが、別の情報源をいくつか提供したいと思います。

活用を検討してくださいd3.geom.quadtree( http://bl.ocks.org/mbostock/4343214 )。これにより、影響を受けているポイントのみを再視覚化できます。ただし、これは、他のデータセットのクエリが散布図の個々のポイントの (x, y) 位置を変更できないことを意味します。クアッド ツリーのインデックスを再作成する必要があるためです。

また、別の視覚化手法を検討しましたか? 2D ビニングは、パフォーマンスの問題を回避するのに役立つ優れた手法です: http://vis.stanford.edu/projects/datavore/splom/

于 2013-06-04T02:15:24.750 に答える