我正在使用dc.js处理热图图表。在页面加载期间,我想手动过滤热图。
例如,如果使用此heatmap.filter进行过滤(" 30,0");它在页面加载时有效。但是当我尝试使用.filter()函数过滤多个值时,它没有用。
我尝试这样做只是为了测试。
var test = [];
test.push("30,0");
test.push("40,2");
heatmapChart.filter(test);
虽然它只有一个项目有效,但如果我添加另一个数组项目,图表就会中断。是否有手动过滤多个项目的特定方法?
答案 0 :(得分:1)
是的,但这里和那里之间有一些奇怪的层次。
首先,使用dc.filters.TwoDimensionalFilter构建实际过滤器项目 - 我认为您的逗号分隔字符串仅在意外工作。
其次,图表已经覆盖了.filter()
,因此如果您想要获得可以处理多个项目的基本版本,则需要调用chart._filter()
。
最后,最奇怪的是,对多个项目进行过滤的语法是提供一个包含单个过滤项目数组的数组。
将这些全部放在一起,
var ff = [dc.filters.TwoDimensionalFilter([0,2008]),
dc.filters.TwoDimensionalFilter([3,1994]),
dc.filters.TwoDimensionalFilter([9,2000])];
heatmapChart._filter([ff]);
适用于heatmap filtering example。注意过滤器数组的数组!