2012-05-30 2 views
0

나는 이것을 위해 google을 시도했지만 행운이 없습니다. 내가 원하는 무엇마우스로 d3.js의 막 대형 차트에서 여러 막대를 선택할 수 있습니까

http://bl.ocks.org/1218567

같은 예를 들어, d3.js 표준 막대 차트를 타고 내 마우스 가운데 4 개 막대를 선택하고 어떻게 든 선택된 값의 값을 얻을 수 있습니다.

d3에서도 그런 것이 가능합니까?


이 편집 : 나는 내 질문에 약간 오해의 소지가 있다고 생각 , 나는 여러 번의 클릭 개체를 선택하고 싶지 않아, 내가 클릭 한 번 끌어 기본 개체를 선택, 내 댓글에 엽차 예를보고 싶어 .

해결 :

d3.brush 대답, 당신은 여기 http://mbostock.github.com/d3/ex/splom.html

+0

같은 것을 보일 수 있습니다 같은 동작을 클릭하고 드래그하여 일부 항목을 선택한 다음 콜백에서 선택한 객체를 가져옵니다. – kodisha

답변

2

당신은 .on() 기능과 click 이벤트를 사용하여이를 구현할 수있는 작업 데모를 볼 수 있습니다. the documentation을 참조하십시오. 여러 막대를 선택할 수 있으려면 선택되지 않은/선택된 막대를 클릭 할 때 추가되거나 제거되는 배열과 같이 전역 변수에서 현재 선택 영역을 추적해야합니다. 코드는 내가 좋아하는 것 내가 반 관련 예를 http://dev.sencha.com/deploy/ext-4.0.0/examples/view/data-view.html 을 발견

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

데이터에서'selected' 비트를 토글 할 수도 있습니다. 예를 들어'bars.on ("click", function (d) {d.selected =! d.selected; redraw();})'와 같이 입력하십시오. – mbostock

+0

오, 엠보 스 톡 그 사람 자기 :) – kodisha

+0

좋아, 거의 직장 시간 (CET)이 끝났지 만 나중에 오늘이나 내일 시험해 보겠다고 약속하면 내 결과를 알려줄거야. 나는 정말로 Lars 답을 고맙다! – kodisha