dc.js x轴不刷新

dc.js x axis not refreshing

我将交叉过滤器与多个图表结合使用 dc.js

使用环形图过滤时,折线图中的数据消失,但x轴保持不变,不刷新。

var tempLineChartt1    = dc.lineChart("#chart-line-temp-t1");

   tempLineChartt1
        .width(768)
        .height(480)
        .elasticX(true)
        .x(d3.time.scale().domain([dateDim.bottom(1)[0].dd,dateDim.top(1)[0].dd]))
        .elasticX(true)
        .dimension(dateDim)
        .group(iotmPerDate)
        .renderArea(true)
        .brushOn(false)
        .renderDataPoints(true)
        .clipPadding(10)
        .yAxisLabel("T1")

我知道这个问题已经回答了几次,但我在快速搜索中找不到确切的参考。

很可能您指的是垃圾箱不会自动从交叉过滤器组中删除这一事实。所以 dc.js 认为没有理由更改 X 域 - elasticX(true) 只会在 X 键组更改时启动,而这里 Y 值只降为零。

您可以使用 "fake group" 动态过滤掉这些结果:

function remove_empty_bins(source_group) {
    return {
        all:function () {
            return source_group.all().filter(function(d) {
                return d.value != 0;
            });
        }
    };
}

var filtered_group = remove_empty_bins(group) // or filter_bins, or whatever

chart.dimension(dim)
    .group(filtered_group)

https://github.com/dc-js/dc.js/wiki/FAQ#fake-groups

有了这个,每次重新绘制折线图时,假组都会在读取数据时过滤掉零。然后折线图将重新计算域并缩放以适合。