如何在dc.js中过滤dataTable而不影响其他维度

时间:2015-05-26 19:26:54

标签: dc.js crossfilter

所以有一段时间我一直在努力学习如何在dc.js中过滤dataTable而不影响其他维度。这似乎是违反直觉的,因为它违背了crossfilter(dc.js背后的数据过滤器)做得最好,但我会解释为什么这可能是相关的。

假设我有一个人名年龄和性别的数据集。在我的一个数据表中,我只想显示男性;使用一个crossfilter,我将被迫按男性过滤我所有其他数据表。

假设我还有一个饼图,其中列出了每个人姓名的第一个字母,我希望能够对“M&#”进行过滤。我有一张男性餐桌和一张女性餐桌。我不希望这些表影响饼图的分布,但我希望能够点击饼图并让它过滤dc.js数据表。或多或少的单向过滤器。

实现这一目标的方法是什么?

1 个答案:

答案 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;
        }
    };
}

这对我来说效果很好,我希望它可以帮助别人。