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

How to filter a dataTable in dc.js without affecting other dimensions

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

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

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

实现这个的方法是什么?

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

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