由于我不熟悉C3.js库,当我试图拆分数组数据时,我有点困惑。
对于瞬间我有一些来自json的数组值。
var jsondata=[[123],[45],[56],[22]];
var jsondataName=[["apple"],["orange"],["banana"],["pear"]];
我试图将第一个数组 jsondata 传递到图表中,但这些值会进入同一列,这不是我想看到的。
我希望这些数组值成为独立数据并将名称推入其中
请参阅我制作的演示: http://jsfiddle.net/q8h39/92/
更新json数据格式:
"Name": apple,
"data": {
"value": 1434,
}
"Name": banana,
"data": {
"value": 342,
}
}
}
答案 0 :(得分:1)
您可以将JSON对象设置为data.json
,然后将data.keys.value
设置为该JSON中的值数组:
var jsondata = [{
"Name": "apple",
"data": {
"value": 1434,
},
}, {
"Name": "banana",
"data": {
"value": 342,
}
}];
var chart = c3.generate({
data: {
json: jsondata,
keys: {
value: [
"name", "data.value"
]
},
type: "scatter"
//hide: true
}
});
http://jsfiddle.net/aendrew/mz9ccbrc/
n.b。,你需要C3 v0.4.11(刚添加了keys.value
的点语法),你的JSON对象需要是一个数组(目前它无效)。
如果要将两个数组从初始问题转换为JSON格式,请尝试以下方法:
d3.zip(jsondataName, jsondata)
.map((d) => Object({name: d[0][0], data: { value: d[1][0] } }));