当参数以字符串形式提供时,为什么 C3 图表不起作用?
why does C3 chart does not work when parameter is provided as String?
我有 C3 图表,它在直接提供列时有效,但在作为字符串参数提供时无效。
这是 jsfiddle:
http://jsfiddle.net/q8h39/79/
Javascript代码:
dataval = "[['x', '2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04', '2013-01-05', '2013-01-06'],['data1', 30, 200, 100, 400, 150, 250], ['data2', 130, 340, 200, 500, 250, 350]]";
var chart = c3.generate({
bindto: '#chart1',
data: {
x: 'x',
xFormat: '%Y-%m-%d %H:%M:%S', // 'xFormat' can be used as custom format of 'x'
columns: dataval
},
axis: {
x: {
type: 'timeseries',
tick: {
format: '%Y-%m-%d %H:%M:%S'
}
}
}
});
原因是这是一个字符串(用双引号引起来)
"[['x', '2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04', '2013-01-05', '2013-01-06'],['data1', 30, 200, 100, 400, 150, 250], ['data2', 130, 340, 200, 500, 250, 350]]"
这是一个数组对象:
[['x', '2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04', '2013-01-05', '2013-01-06'],['data1', 30, 200, 100, 400, 150, 250], ['data2', 130, 340, 200, 500, 250, 350]]
在 c3 中 columns
需要数组对象而不是字符串
编辑
要将您传递的字符串转换为 JSON 数组,请执行以下操作:
dataval = "[['x', '2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04', '2013-01-05', '2013-01-06'],['data1', 30, 200, 100, 400, 150, 250], ['data2', 130, 340, 200, 500, 250, 350]]";
dataval = dataval.replace(/'/g, "\"");//replacing single quotes with double quotes
dataval = JSON.parse(dataval);
工作代码here
希望对您有所帮助!
我有 C3 图表,它在直接提供列时有效,但在作为字符串参数提供时无效。
这是 jsfiddle: http://jsfiddle.net/q8h39/79/
Javascript代码:
dataval = "[['x', '2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04', '2013-01-05', '2013-01-06'],['data1', 30, 200, 100, 400, 150, 250], ['data2', 130, 340, 200, 500, 250, 350]]";
var chart = c3.generate({
bindto: '#chart1',
data: {
x: 'x',
xFormat: '%Y-%m-%d %H:%M:%S', // 'xFormat' can be used as custom format of 'x'
columns: dataval
},
axis: {
x: {
type: 'timeseries',
tick: {
format: '%Y-%m-%d %H:%M:%S'
}
}
}
});
原因是这是一个字符串(用双引号引起来)
"[['x', '2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04', '2013-01-05', '2013-01-06'],['data1', 30, 200, 100, 400, 150, 250], ['data2', 130, 340, 200, 500, 250, 350]]"
这是一个数组对象:
[['x', '2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04', '2013-01-05', '2013-01-06'],['data1', 30, 200, 100, 400, 150, 250], ['data2', 130, 340, 200, 500, 250, 350]]
在 c3 中 columns
需要数组对象而不是字符串
编辑
要将您传递的字符串转换为 JSON 数组,请执行以下操作:
dataval = "[['x', '2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04', '2013-01-05', '2013-01-06'],['data1', 30, 200, 100, 400, 150, 250], ['data2', 130, 340, 200, 500, 250, 350]]";
dataval = dataval.replace(/'/g, "\"");//replacing single quotes with double quotes
dataval = JSON.parse(dataval);
工作代码here
希望对您有所帮助!