如何在不影响其他维度的情况下过滤dc.js中的数据表



所以有一段时间,我一直在努力寻找如何在不影响其他维度的情况下过滤dc.js中的数据表。这似乎是违反直觉的,因为它违背了交叉过滤器(dc.js背后的数据过滤器)最擅长的,但我将解释为什么这是相关的。

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

假设我还有一个饼状图,列出了每个人名字的第一个字母,我希望能够过滤"M"。我有一张男桌和一张女桌。我不希望这些表影响饼图的分布,但我希望能够单击饼图并让它过滤dc.js数据表。或多或少是一个单向过滤器。

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

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

这对我来说很有效,我希望它能帮助到其他人。

相关内容

最新更新