2017-03-28 7 views
2

을 dc.js를?는 방법은 복합 차트</strong>에 온/오프 <strong>전환 차트에 있습니까 복합 차트 토글 차트

나는 전설을 통해 강조 각각의 차트를 가져하지만 우리는 (전설과 숨기기/쇼 상자 등을 확인) 표시 할 것을 선택할 수 있다면 좋을 텐데합니다.

나는 hideStack에 대한 참조를 찾았지만 이것이 내가 필요한 것이라고는 생각하지 않습니다.

아이디어가 있으십니까?

(현재 DC 버전 : 2.0.0-alpha.2) 네 말이 맞아

답변

1

는 전설 토글 링은 현재 스택 및 복합 차트 아닌 subcharts에 초점을 맞추고 있습니다.

범례의 토글 링 시스템을 해킹하는 것이 가능할 수도 있지만 여기서는 토글 링 기능을 확장으로 추가하는 솔루션입니다. 차트가 pretransition 이벤트와 함께 그려 될 때까지

우리는 그 다음 전설의 각 항목에 우리 자신의 클릭 핸들러를 추가 기다릴 것입니다.

composite.on('pretransition.hideshow', function(chart) { 
    chart.selectAll('g.dc-legend .dc-legend-item') 
    .on('click.hideshow', function(d, i) { 
     var subchart = chart.select('g.sub._' + i); 
     var visible = subchart.style('visibility') !== 'hidden'; 
     subchart.style('visibility', function() { 
     return visible ? 'hidden' : 'visible'; 
     }); 
     d3.select(this).style('opacity', visible ? 0.2 : 1); 
    }); 
}); 

는 또한, 우리는 항목이 숨겨져 있음을 나타 내기 위해 범례 항목의 반투명를 설정합니다 : 이것은 다음의 CSS의 가시성을 전환, 해당 subchart의 선택을 만들 범례 항목의 인덱스를 사용합니다.

+0

이것은 마치 마술처럼 느껴집니다. 내 차트 이름 (myCompositeChart)을 올바른 위치로 지정하려면 어디에 배치해야합니까? 언제나처럼 고마워. – stutray

+0

필자가 예로 든 javascript 차트 객체 인'composite'를 호출했습니다. 위의 블록의 첫 번째 단어를 변경하기 만하면됩니다. (의도적으로 복사해서 붙여 넣기가 쉬워 지도록 안에 의도적으로'chart'를 사용합니다.) – Gordon

+0

그래서 : ** var myCompositeChart = dc.compositeChart ("# Viz_Main2"); ** 등 확장자는 다음과 같습니다. ** myCompositeChart.on ('pretransition.hideshow'기능 (그래프) { chart.selectAll ('g.dc-범례 .dc-범례 항목') CSTE 연구진 ('click.hideshow'기능 (d, ⅰ) { VAR의 subchart chart.select = ('g.sub._'+ I) 표시 VAR subchart.style = ('공개') == "숨겨진",! subchart.style ('공개' (투명도, 가시성? 0.2 : 1); }); }); * (이모티콘 ', 가시? 0.2 : 1); * – stutray