您如何计算全球应用的过滤器数量?
How do you count the number of appllied filters globally?
如何计算 dc.js 中应用的过滤器数量?
我找不到简单的方法,比如
dc.countAllAppliedFilters()
好问题。 dc.js 没有内置任何东西来确定这一点,crossfilter 也不提供任何吸气剂。
然而,一个crossfilter实例通常对应dc.js中的一个"chart group"。如果您想要的过滤器计数是一组相互交互的图表,则它们可能位于同一图表组中。
您可以使用 (newly documented) dc.js 图表注册表计算图表组的过滤器计数:
function chart_group_filter_count(chartgroup) {
return dc.chartRegistry.list(chartgroup)
.filter(function(chart) {
// exclude focus charts because they will be counted twice
return chart.filters().length && !(chart.rangeChart && chart.rangeChart());
}).length;
}
如果您的图表在默认图表组中(仅使用一个参数构建),那么您可以省略 chartgroup
参数。
这里唯一棘手的事情是我们明确地将焦点图表从计数中排除,因为范围图表和焦点图表将始终具有相同的过滤器,因此它会被计算两次。
如何计算 dc.js 中应用的过滤器数量?
我找不到简单的方法,比如
dc.countAllAppliedFilters()
好问题。 dc.js 没有内置任何东西来确定这一点,crossfilter 也不提供任何吸气剂。
然而,一个crossfilter实例通常对应dc.js中的一个"chart group"。如果您想要的过滤器计数是一组相互交互的图表,则它们可能位于同一图表组中。
您可以使用 (newly documented) dc.js 图表注册表计算图表组的过滤器计数:
function chart_group_filter_count(chartgroup) {
return dc.chartRegistry.list(chartgroup)
.filter(function(chart) {
// exclude focus charts because they will be counted twice
return chart.filters().length && !(chart.rangeChart && chart.rangeChart());
}).length;
}
如果您的图表在默认图表组中(仅使用一个参数构建),那么您可以省略 chartgroup
参数。
这里唯一棘手的事情是我们明确地将焦点图表从计数中排除,因为范围图表和焦点图表将始终具有相同的过滤器,因此它会被计算两次。