c3.js 从 JSON 负载生成堆积条

c3.js generate a stacked bar from JSON payload

我正在尝试在使用 JSON 有效负载(下面的代码)时使用 c3 生成堆积条形图。但是,当我对数据进行分组时,它们不会出现堆叠行为,而是会叠加。如果我使用列结构,我会得到预期的行为,但这意味着我会为堆积条形图和我的其他视觉对象(即时间序列图)生成不同的代码。

var chart = c3.generate({
data: {
    x: "x-axis",
    json:[
        { "x-axis": "0",
            "data1": 30
        },
        { "x-axis": "0",
            "data2": 40
        }],
        keys: {
            x: "x-axis",
            value: ["data1", "data2"]
        },
                groups: [
        ['data1', 'data2']
    ],
    type: 'bar'
}
});

这是一个fiddle:http://jsfiddle.net/cjrobinson/ozf4fzcb/

他们在你的例子中互相重叠很奇怪,我会把它作为一个错误报告给 c3

如果你不想使用 columns[] 格式,你可以像下面那样做,但仍然需要一些数据整理:

var chart = c3.generate({
data: {
    x: "x-axis",
    json:[
        { "x-axis": "0",
            "data1": 30,
            "data2": 40
        },
        { "x-axis": "1",
            "data1" :20,
            "data2": 60
        }],
       // etc etc
        keys: {
            x: "x-axis",
            value: ["data1", "data2"]
        },
                groups: [
        ['data1', 'data2']
    ],
    type: 'bar'
}
});

http://jsfiddle.net/dhgujwy7/1/