行图只选择dc.js/crosfilter中的一个条形图

Rowchart select only a single bar in dc.js / crossfilter?

本文关键字:条形图 一个 crosfilter 选择 dc js      更新时间:2023-09-26

我有一个dc.rowchart,它有5个不同的"类别"。最初,所有选项都被选中。当我点击其中一个时,只有那个突出显示。当我点击第二个。。。我点击的第一个和第二个都高亮显示。

如何设置/配置行图,以便每次单击条形图时只突出显示一个类别?

dc.filter("category1");
dc.filter("category2");

这两者按顺序似乎都是"附加"过滤器而不是替换过滤器。

Ethan的答案就在那里。这可能是无意的,但dc.js似乎没有使用addFilterHandler的返回值,因此您必须修改filters参数才能使其工作,如下所示:

myChart.addFilterHandler(function (filters, filter) {
    filters.length = 0; // empty the array
    filters.push(filter);
    return filters;
});

只要您的图表不使用cap(例如切片有限的饼图),这就非常有效,因为此处理程序会阻止others组工作。不幸的是,我还没有想出一个令人满意的解决方案。

我想你会想要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];
});