javascript - 图例点击和数据更新后c3js隐藏数据

标签 javascript d3.js c3.js

为了解释我的问题,我在 c3js 网站 ( http://c3js.org/samples/chart_bar.html ) 上使用了以下代码:

var chart = c3.generate({
    data: {
        columns: [
            ['data1', 30, 200, 100, 400, 150, 250],
            ['data2', 130, 100, 140, 200, 150, 50]
        ],
        type: 'bar'
    },
    bar: {
        width: {
            ratio: 0.5 // this makes bar width 50% of length between ticks
        }
        // or
        //width: 100 // this makes bar width 100px
    }
});

setTimeout(function () {
    chart.load({
        unload : true,
        columns: [
            ['data3', 130, -150, 200, 300, -200, 100]
        ]
    });
}, 3000);

setTimeout(function () {
    chart.load({
       unload : true,
        columns: [
            ['data1', 30, 200, 100, 400, 150, 250],
            ['data2', 130, 100, 140, 200, 150, 50]
        ],

    });
}, 4000);
  • 我点击data1隐藏其中一个数据未更新,我有以下,这是正常的:

enter image description here

  • 但是在最后一次更新之后,我发现了一个奇怪的行为,其中 data1 “显示了一半”:

enter image description here

有什么办法可以解决这个问题吗?

谢谢

最佳答案

问题似乎是c3的绘图逻辑。但是这个问题有一个解决方法。检查以下代码:

setTimeout(function () {
    chart.load({
        unload : true,
        columns: [
            ['data1', 30, 200, 100, 400, 150, 250],
            ['data2', 130, 100, 140, 200, 150, 50]
        ],
        done : function() {
            // After chart is drawn, shown all the hidden legend.
            chart.show();
        }
    });
}, 4000);

关于javascript - 图例点击和数据更新后c3js隐藏数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47770921/

相关文章:

javascript - 显示从下拉列表中的月份选择中选择的图表列表

javascript - D3 data.map 函数出错

javascript - 扩展 c3js 库以包含我自己的功能和特性

css - 如何修改c3.js图例的文字颜色

javascript - 使用来自 iframe 的跨域的相对 url 导航 parent.window

javascript - 如何使用 AngularJs 从两个不同的 json 文件创建嵌套列表?

javascript - d3js : time scaling and winter months

javascript - d3 中嵌套数据的类型节点错误的参数号

javascript - c3条形图将刻度值与非中心刻度对齐

javascript - onload 事件在内容加载前触发