라인 차트
sobRingChart.on('filtered', function(chart) {
PUchart.filter(null)
.filter(chart.filters());
dc.redrawAll()
});
예에서 그들을 필터링을 시도, 그냥 데이터 불일치입니다.
이해해야 할 중요한 사항은 크로스 필터의 모든 필터링이 차원 개체를 통해 발생한다는 것입니다. 필터링하는 값은 필터링하는 차원과 호환되어야합니다.
따라서 꺾은 선형 차트는 시간 기반이므로 Source
으로 필터링 할 수 없습니다.
var sourceDim2 = spendData2.dimension(function(d) { return d.Source; })
그럼 대신 라인 차트의 차원을 필터링 : 당신은 그렇게 다른 차원을 설정해야합니다 그것이 여러 값 필터링 처리 할 수 있기 때문에
sobRingChart.on('filtered', function(chart) {
if(chart.filters().length)
sourceDim2.filterFunction(function(k) {
return chart.filters().indexOf(k) !== -1;
});
else sourceDim2.filter(null);
dc.redrawAll()
});
이는 복잡하다 (링 차트의 슬라이스가 두 개 이상 선택되었을 때). Crossfilter는 그렇게 단순하지는 않습니다. 아마 모든 것이 그렇게 효율적인 것은 아니기 때문입니다. (대개 중요하지 않습니다.)
그래서 필터가 있는지 알아봐야합니다. 존재하는 경우, 우리는 현재 고려 된 키가 chart.filters()
에 있는지보기위한 필터 함수를 설정합니다. 그렇지 않은 경우 .filter(null)
으로 전화하여 필터를 지 웁니다.
내 주말 고든에게 감사드립니다. working link http://jsfiddle.net/yccu/qBr7y/33/ – YCuvelie