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