Crossfilter / dc.js 中的假组过滤
Fake group filtering in Crossfilter / dc.js
我正在尝试了解 dc.js 常见问题解答 How do I filter the data before it's charted?
中描述的 "fake group" 过滤方法
请在此处查看我的示例:dc.js jsfiddle
我想在绘制图表之前按类型过滤我的数据(要过滤的类型将来自我的应用程序的另一部分)。基本上它应该与单击行图表中的四个条形之一 (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 传递,或者谓词函数是什么。
如有任何帮助,我将不胜感激!谢谢。
如果您希望它真正表现得好像在 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();
幸运的是,我认为在这种情况下不需要假组模式。 :-)
我正在尝试了解 dc.js 常见问题解答 How do I filter the data before it's charted?
中描述的 "fake group" 过滤方法请在此处查看我的示例:dc.js jsfiddle
我想在绘制图表之前按类型过滤我的数据(要过滤的类型将来自我的应用程序的另一部分)。基本上它应该与单击行图表中的四个条形之一 (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 传递,或者谓词函数是什么。
如有任何帮助,我将不胜感激!谢谢。
如果您希望它真正表现得好像在 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();
幸运的是,我认为在这种情况下不需要假组模式。 :-)