我有一个dc.rowchart,有5个不同的"类别"。最初,所有都被选中。当我点击一个,然后只突出显示那个。当我点击第二个时...我点击的第一个和第二个都突出显示。
如何制作/配置行图,以便每次点击一个栏时只突出显示一个类别?
dc.filter("category1");
dc.filter("category2");
这两个顺序似乎"追加"过滤器而非替换。
答案 0 :(得分:2)
Ethan的回答几乎就在那里。这可能是无意的,但dc.js似乎没有使用addFilterHandler
的返回值,因此您必须修改filters
参数才能使其正常工作,如下所示:
myChart.addFilterHandler(function (filters, filter) {
filters.length = 0; // empty the array
filters.push(filter);
return filters;
});
只要您的图表不使用cap
(例如带有限制切片的饼图),这就行得很好,因为此处理程序阻止了others
组的工作。不幸的是,我还没有为这个案子提出令人满意的解决方案。
答案 1 :(得分:0)
我假设您需要addFilterHandler
- https://github.com/dc-js/dc.js/blob/master/web/docs/api-latest.md#dc.baseMixin+addFilterHandler
您可能希望执行以下操作,但未经测试。
myChart.addFilterHander(function (filters, filter) {
return [filter];
});