2014-06-11 3 views
0

크로스 필터에서 필터를 사용하려고합니다.크로스 필터 필터가 필터링되지 않음 (dc.js)

Here's the JSBin

는 여기에 가장 관련 코드입니다 :

var userDimension = data.dimension(function(d) {return d.user;}).filter(['John', 'Paul']); 
var totalSalesByUser = userDimension.group(); 
var pieChartUserSales = dc.pieChart("#pie-chart-sales-by-user"); 
pieChartUserSales 
    .width(150).height(150) 
    .dimension(userDimension) 
    .group(totalSalesByUser); 

dc.renderAll(); 

파이 차트와 필터없이 동일하게 보이지만, 내가 찾고 있어요 효과가 항목 곳으로 그것을 아래로 축소된다 John 또는 Paul이 사용자입니다.

답변

5

크로스 필터 필터는 필터와 동일한 차원에서 정의 된 그룹에는 적용되지 않습니다. 두 번째 측정 기준을 만들고이를 필터링하십시오.

다음은 업데이트 된 예입니다. 또한 정의한 필터는 의도 한대로 작동하지 않으므로 Paul과 John 만 필터링하는 함수로 변경했습니다. http://jsbin.com/yugakire/1/edit

+0

업데이트 된 jsbin을 보내 주셔서 감사합니다. 제 문제는 아름답게 해결됩니다. –

2

따라서 필터를 적용한 차원에 필터가 적용되지 않습니다. 모든 것을 에 적용합니다..

오랫동안 오랫동안 생각한 후에 말이됩니다.

+0

예. 직관적 인 것은 아니지만, 조정 된보기에서 필터링하는 것이 올바른 디자인 결정입니다. –

+0

@Jeffrey 자세히 설명해 주시겠습니까? – Sam

+0

코멘트를 작성한 후 크로스 필터 개체를 사용하는 내 차트를 보았습니다. 어떤 의미가 있습니다. 저는 2017 년의 각 달 동안의 책 판매 수를 보여주는 차트 A (시간 차원과 그룹을 사용하여), 두 번째 차트 B는 다른 책의 총 판매를 보여줍니다. 특정 월간 총 판매량을 알고 싶다고 가정하고 시간 차원을 기준으로 필터링합니다. B는 이에 따라 변경되지만, A가 반드시 변경 될 필요는 없습니다 (모든 정보가 이미 있기 때문에). 그러나 차트를 더 선명하고 명확하게 만들 필요가 있으면 필터링 할 시간 차원 복사본을 만듭니다. – Sam