在Crossfilter / dc.js中伪造群组过滤

我想了解dc.js常见问题解答中描述的“假组”过滤方法如何在数据绘制之前过滤数据?

请看我的例子:dc.js jsfiddle

我想在绘制图表之前按TYPE过滤我的数据(要过滤的TYPE将来自我的应用程序的另一部分)。 基本上它应该与点击行图中四个条(A,B,C,D)中的一个具有相同的效果,但我希望能够从我的代码中的其他地方控制它,并且它应该在图表绘制。

我想我需要使用谓词函数在我的组名为“type”的值方法上使用Filter过滤器,例如

function filter_bins(source_group, f) {
return {
    all:function () {
        return source_group.all().filter(function(d) {
            return f(d.value);
        });
    }
};

}

但是我不清楚我应该以f传递什么函数,或者谓词函数是什么。

我将不胜感激任何帮助! 谢谢。


如果你希望它真正表现得像typeRowChart中的typeRowChart (这可能是你想要的),然后在你想要的任何地方做到这一点:

typeRowChart.filter("A");

如果由于某种原因,您希望typeRowChart保持原样(未过滤),但您想对typeDim进行过滤,请直接在维上过滤并调用dc.redrawAll()

typeDim.filter("A");
dc.redrawAll();

如果你想让typeRowChart也被新的选择过滤,那么就创建一个新的类型维度并过滤:

var typeDim2 = cf.dimension(function (d) {return d.TYPE;});
typeDim2.filter("A");
dc.redrawAll();

幸运的是,在这种情况下,我认为不需要假群组模式。 :-)

链接地址: http://www.djcxy.com/p/32739.html

上一篇: Fake group filtering in Crossfilter / dc.js

下一篇: Dynamically Creating and Linking dc.js Charts