我正在尝试了解dc.js常见问题How do I filter the data before it's charted?
中描述的“假组”过滤方法请在此处查看我的示例:dc.js jsfiddle
我希望在绘制图表之前按TYPE过滤我的数据(要过滤的TYPE将来自我的应用程序的另一部分)。基本上它应该与点击行图中的四个条形(A,B,C,D)之一具有相同的效果,但我希望能够从我的代码中的其他位置控制它,它应该在绘制图表。
我想我需要在名为“type”的组中使用Filter out bins by predicate function on the values方法,例如
function filter_bins(source_group, f) {
return {
all:function () {
return source_group.all().filter(function(d) {
return f(d.value);
});
}
};
}
但是我不清楚我应该将什么函数作为f传递,或者谓词函数是什么。
我将不胜感激任何帮助!感谢。
答案 0 :(得分:3)
如果您希望它真正表现得好像在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();
幸运的是,我不认为在这种情况下需要假组模式。 : - )