lineChart即使使用相同的维度也不会更新

时间:2014-02-19 10:49:04

标签: d3.js bar-chart linechart dc.js

我有一个lineChart,其功能有点复杂.valueAccessor。我在同一维度和群组上也有barChart

网页上还有其他几个图表,但其他维度和群组。

当我使用其他图表之一进行过滤时,barChart会正确更新,但不会更新lineChart。有没有解释这种行为的东西?

我想在设置jsFiddle之前得到反馈,因为我的数据很重。

编辑:这是fiddle。它在ajax调用中提取7MB数据,因此需要一段时间才能运行。下面@DJMartin提供的答案对我来说应该是修复,但它不起作用。

1 个答案:

答案 0 :(得分:1)

来自crossfilter API参考:https://github.com/square/crossfilter/wiki/API-Reference

“注意:除了关联维度的过滤器之外,分组与交叉过滤器的当前过滤器相交。因此,组方法仅考虑满足除此维度过滤器之外的每个过滤器的记录。因此,如果按类型和总数过滤付款的交叉过滤器,然后groupAll by total仅按类型观察过滤器。“

如果使用相同的属性创建第二个维度,则过滤将反映图表。

以下是一个示例:http://jsfiddle.net/djmartin_umich/nw8EV/

teamMemberChart
        .width(270)
        .height(220)
        .dimension(teamMemberDimension)
        .group(teamMemberGroup)
        .valueAccessor(function (d) {
        return d.value.projectCount;
    })
        .elasticX(true);

    teamMemberChart2
        .width(270)
        .height(220)
        .dimension(teamMemberDimension)
        .group(teamMemberGroup)
        .valueAccessor(function (d) {
        return d.value.projectCount;
    })
        .elasticX(true);

    teamMemberChart3
        .width(270)
        .height(220)
        .dimension(teamMemberDimension2)
        .group(teamMemberGroup2)
        .valueAccessor(function (d) {
        return d.value.projectCount;
    })
        .elasticX(true);

前两个图表使用相同的维度 - 选择一个选项并不反映另一个选项。第三个图表在同一属性上使用不同的维度 - 在此图表上选择一个选项会更新其他两个图表。