所以有一段时间我一直在努力学习如何在dc.js中过滤dataTable而不影响其他维度。这似乎是违反直觉的,因为它违背了crossfilter(dc.js背后的数据过滤器)做得最好,但我会解释为什么这可能是相关的。
假设我有一个人名年龄和性别的数据集。在我的一个数据表中,我只想显示男性;使用一个crossfilter,我将被迫按男性过滤我所有其他数据表。
假设我还有一个饼图,其中列出了每个人姓名的第一个字母,我希望能够对“M&#”进行过滤。我有一张男性餐桌和一张女性餐桌。我不希望这些表影响饼图的分布,但我希望能够点击饼图并让它过滤dc.js数据表。或多或少的单向过滤器。
实现这一目标的方法是什么?
答案 0 :(得分:3)
dc.js数据表接受交叉滤波器尺寸。我通过如下扩展维度解决了这个问题。
function preFilter(dim,okey,oval){
return{
top:function(x){
var a1 = dim.top(x).filter(function(v){
return v[okey] === oval;
});
return a1;
}
};
}
这对我来说效果很好,我希望它可以帮助别人。