【问题标题】:dc.js x axis not refreshingdc.js x 轴不刷新
【发布时间】:2016-11-30 04:53:31
【问题描述】:

我将交叉过滤器与多个图表结合使用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")

【问题讨论】:

    标签: javascript d3.js dc.js crossfilter


    【解决方案1】:

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

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

    您可以使用“假组”来动态过滤掉这些结果:

    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

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

    【讨论】:

    • 也许这个问题被回答了很多次,但我搜索了几天来寻找这个解决方案。非常感谢你,这很好用!!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-18
    • 1970-01-01
    • 1970-01-01
    • 2021-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多