【发布时间】:2016-03-22 06:22:51
【问题描述】:
我在创建 JSON 对象以使用 C3JS 绘制图表时遇到问题。我可以使用静态 JSON 绘制图表,但我的数据是动态的,我的图表必须保持通用,因此我无法传递静态 JSON。 JSON 的 Key 值是通用的,只需更改值。
我的 JSON 当前 JSON 格式如下所示。
[
{
"Key": "data1",
"Metric": "field1",
"Total": 1
},
{
"Key": "data1",
"Metric": "field2",
"Total": 1
},
{
"Key": "data2",
"Metric": "field1",
"Total": 1
},
{
"Key": "data2",
"Metric": "field2",
"Total": 4
},
{
"Key": "data2",
"Metric": "field3",
"Total": 4
},
{
"Key": "data3",
"Metric": "field1",
"Total": 1
},
{
"Key": "data3",
"Metric": "field2",
"Total": 4
},
{
"Key": "data3",
"Metric": "field3",
"Total": 4
}
]
这是图表代码。
var xAxis = ['x','data1','data2','data3'];
var data1 = ['field1', 6, 13, 4];
var data2 = ['field2', 3, 3, 5];
var data3 = ['field3, 21, 22, 4];
var data = [""]
var full = [
/*['x','data1','data2','data3'],
['field1', 6, 13, 4],
['field2', 3, 3, 5],
['field3, 21, 22, 4]*/
];
full.push(xAxis);
full.push(data1);
full.push(data2);
full.push(data3);
var chart = c3.generate({
data: {
x: 'x',
columns: full,
type: 'bar',
},
bar: {
width: {
ratio: 0.7 // this makes bar width 50% of length between ticks
}
},
axis: {
x: {
type: 'category' // this is needed to load string x value
}
},
bindto: '#chart'
});
我需要帮助创建一个对象,以便我可以向 C3JS 提供数据以绘制我的堆叠条形图。我必须从我的 json 响应中读取数据并将其推送到一个看起来像这样的数组中。
var xAxis = ['x','Agency','Direct','Employee Reference']; var data1 = ['Permanent', 6, 13, 4]; var data2 = ['Contract', 3, 3, 5]; var data3
= ['Conract on Hire', 21, 22, 4];
任何改变我喂养方式的建议也会有很大帮助。 这是我的第一篇 StackOver 帖子,对于歧义感到抱歉。 提前谢谢你。
【问题讨论】:
标签: javascript json for-loop d3.js c3.js