指明;“团体”;动态叠加条形图c3js

指明;“团体”;动态叠加条形图c3js,c3,C3,//以这段代码为例 在这里,我在组中指定了yvalue[0],yvalue[1]。。 但是我需要一个通用的设计,我不知道我必须创建的组的数量(即段的数量),这取决于json数据 考虑一下这个例子,我有total,total1,因此我只有2个值。但是如果第三个变量说total2是在json中指定的,我应该在条形图中为它指定一个段,以此类推。这必须在每次添加字段时都不改变组的情况下完成。有什么方法可以实现吗 谢谢 var datajson = [ { country : "china", total

//以这段代码为例

在这里,我在组中指定了yvalue[0],yvalue[1]。。 但是我需要一个通用的设计,我不知道我必须创建的组的数量(即段的数量),这取决于json数据

考虑一下这个例子,我有total,total1,因此我只有2个值。但是如果第三个变量说total2是在json中指定的,我应该在条形图中为它指定一个段,以此类推。这必须在每次添加字段时都不改变组的情况下完成。有什么方法可以实现吗

谢谢

var datajson = [ {
country : "china",
total : 20,
total1 : 10
}, {
country : "India",
total : 40,
total1 : 20
}, {
country : "aus",
total : 10,
total1 : 30
}, {
country : "nxz",
total : 50,
total1 : 40
}

    ];

    var xvalue;
    var yvalue = [];
    var i = 0;

    var obj = datajson[0]
    for ( var key in obj) {
        if (xvalue === undefined)
            xvalue = key;
        else {
            yvalue[i] = key;
            i++;
        }

    }



    var chart = c3.generate({
        bindto : '#chart',
        data : {
            json : datajson,

            type : 'bar',
            keys : {
                x : xvalue, // it's possible to specify 'x' when category axis
                value : [yvalue[0],yvalue[1]],
            },
            groups : [ [yvalue[0],yvalue[1]] ]
        },
        bar : {
            width : {
                ratio : 0.3
            // this makes bar width 50% of length between ticks
            }
        },
        axis : {
            x : {
                type : 'category'

        },


        }
    });

您的问题似乎得到了大部分答案(您已经从对象属性生成了yvalue数组)

您不必一个接一个地指定元素,只需直接传入数组即可

groups: [yvalue]

我可以将数据分组,但条形图不是堆叠的,而是重叠的。有什么解决办法吗?你能用小提琴把你的问题贴出来吗?更好的是,你可能想把它作为一个问题发布——更多的人会关注它。谢谢你的回复,我想问题出在我使用的旧版本的c3 js文件上。这是0.4.10中的一个bug,在0.4.11中得到了解决