在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