2012-05-30 66 views
0

我正在嘗試谷歌,但沒有運氣。是否有可能在d3.js的條形圖上用鼠標選擇多個條形圖

我要的是採取標準條形圖中d3.js,例如像這樣

http://bl.ocks.org/1218567

,並與我的鼠標中間的4條選擇,並以某種方式得到的只是選擇值的值。

d3可以嗎?


編輯: 我想我的問題可能是有點誤導,我不想做多次點擊來選擇對象,我想單擊並拖動一旦選擇潛在對象,看到我的評論例如煎茶。

解決:

d3.brush爲答案,就可以看到工作演示這裏 http://mbostock.github.com/d3/ex/splom.html

+0

我發現半相關的例子http://dev.sencha.com/deploy/ext-4.0.0/examples/view/data-view.html 我想相同的行爲,點擊並拖動選擇一些項目,然後在一些回調中,我得到選定的對象。 – kodisha

回答

2

可以使用.on()功能和click事件實現這一點。見the documentation。爲了能夠選擇多個小節,您需要跟蹤全局變量中的當前選擇,例如當您單擊未選定/選定的小節時添加或刪除的數組。該代碼可能看起來像

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(); 
    }); 
+0

您也可以切換數據上的「選定」位。例如'bars.on(「click」,function(d){d.selected =!d.selected; redraw();})'。 – mbostock

+0

哦,mbostock他自己:) – kodisha

+0

好的,差不多是在這裏工作的時間(CET),但我保證在今天晚些時候或明天晚些時候嘗試它,會讓你知道我的結果。我真的很感謝拉爾斯的回答! – kodisha