dc.js使用来自其他数据集的过滤器

时间:2015-10-13 20:01:57

标签: dc.js crossfilter

当我在crossfilter中有多个数据集时遇到问题。 我为每个数据集创建一个crossfilter。 当我在气泡图中选择年份维度时,我想在饼图中过滤我的数据。它们来自不同的数据集,但它们都有Year列。

气泡图:

var ndx = crossfilter(data);
var yearDimension = ndx.dimension(function (d) { return d.FiscalYear; });
var yearlyPerformanceGroup = yearDimension.group().reduceSum(return d.Value);

饼图

var ndxobi = crossfilter(obligation);
var yearDimension = ndxobi.dimension(function (d) { return d.FiscalYear; });
var obligationDimension = ndxobi.dimension(function (d) { return d.Type; });
var valueObligationSumGroup = obligationDimension.group().reduceSum(function (d) { return d.Value; });

有人可以告诉我如何在气泡图中选择年份,然后将其传递给饼图吗?

谢谢

1 个答案:

答案 0 :(得分:0)

如果他们使用常见的交叉过滤器,它会更好地工作,但是你可以通过在气泡图上听取filtered事件并在它触发时过滤饼图来获得一些工作:

bubbleChart.on('filtered', function(chart) {
    pieChart.filter(null)
        .filter([chart.filters()])
        .redrawGroup();
});

这将删除饼图上的旧过滤器,应用新过滤器,然后使饼图的交叉过滤器中的所有图表重新绘制。

文档: