我正在使用 dc.js 制作热图。在页面加载期间,我想手动过滤热图。
例如,如果它使用这个 heatmap.filter("30,0") 进行过滤;它在页面加载时起作用。但是当我尝试使用 .filter() 函数过滤多个值时,它不起作用。
我尝试这样做只是为了测试。
var test = [];
test.push("30,0");
test.push("40,2");
heatmapChart.filter(test);
虽然如果它只有一个项目就可以工作,但如果我添加另一个数组项目,图表就会中断。有没有一种特定的方法可以手动过滤多个项目?
最佳答案
是的,但是这里和那里之间有几层奇怪的东西。
首先,实际的过滤器项是使用 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 .注意过滤器数组的数组!
关于javascript - Heatmap DC.js - 如何手动过滤多个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49077900/