0

私はこれをグーグルで検索しようとしていましたが、運がありませんでした。

私が欲しいのは、d3.jsの標準的な棒グラフを取得することです。たとえば、次のようになります。

http://bl.ocks.org/1218567

マウスの真ん中の4本のバーで選択すると、どういうわけか、選択した値の値のみが取得されます。

d3でそのようなことは可能ですか?


編集:私の質問は少し誤解を招くかもしれないと思います、私はオブジェクトを選択するために複数のクリックをしたくありません、私は一度クリックしてドラッグし、下にあるオブジェクトを選択したいです、私のコメントの煎茶の例を参照してください。

解決済み:

d3.brushが答えです。ここで、動作するデモを見ることができます http://mbostock.github.com/d3/ex/splom.html

4

1 に答える 1

2

.on()これは、関数とclickイベントを使用して実装できます。ドキュメントを参照してください。複数のバーを選択できるようにするには、グローバル変数で現在の選択を追跡する必要があります。たとえば、選択されていない/選択されたバーをクリックしたときに追加および削除される配列です。コードは次のようになります

var selection = [];
...
var bars = vis.selectAll("g.bar")
    .data(data)
    .enter()
    .append("svg:g")
    ...
    .on("click", function(d) {
        if(selection.indexOf(d) == -1) { selection.push(d); }
        else { selection.splice(selection.indexOf(d), 1); }
        updateSelectionDisplay();
    });
于 2012-05-30T16:33:45.500 に答える