我正在使用C3.js来创建条形图。
我的情况是这样的:
我想收集X
个数据并将其显示在我的图表中,为此我创建了以下脚本:
$.ajax({
type: 'POST',
url: '/AcademyStat/academy_module_user_report',
dataType: 'json',
data: {
request: 'ajax',
team_id: team_id,
module_id: module_id
},
success: function (data)
{
if(data != null)
{
for (var i = 0; i < data.length; i++)
{
var add_data = [data[i]['name'], data[i]['score']]
char_data.push(add_data);
}
var chart = c3.generate({
bindto: '#score_chart',
data: {
columns: [
char_data
],
type: 'bar'
}
});
}
}
});
从上面的示例中可以看出,我循环遍历数据然后将其添加到数组中,直到我有一个数组数组(未知数量的数据)。
然而,当我在浏览器中运行时,我在console
:
Error: Invalid value for <path> attribute d="M 286.6,NaN L286.6,NaN L531.4,NaN L531.4,NaN z" d3.min.js:5
Error: Invalid value for <path> attribute d="M 1102.6,NaN L1102.6,NaN L1347.3999999999999,NaN L1347.3999999999999,NaN z" d3.min.js:5
Error: Invalid value for <path> attribute d="M 286.6,NaN L286.6,NaN L531.4,NaN L531.4,NaN z" d3.min.js:5
Error: Invalid value for <path> attribute d="M 1102.6,NaN L1102.6,NaN L1347.3999999999999,NaN L1347.3999999999999,NaN z" d3.min.js:5
Error: Invalid value for <path> attribute d="M 286.6,NaN L286.6,NaN L531.4,NaN L531.4,NaN z" d3.min.js:5
Error: Invalid value for <path> attribute d="M 1102.6,NaN L1102.6,NaN L1347.3999999999999,NaN L1347.3999999999999,NaN z" d3.min.js:5
Error: Invalid value for <path> attribute d="M 286.6,NaN L286.6,NaN L531.4,NaN L531.4,NaN z" d3.min.js:5
Error: Invalid value for <path> attribute d="M 1102.6,NaN L1102.6,NaN L1347.3999999999999,NaN L1347.3999999999999,NaN z" d3.min.js:5
Error: Invalid value for <path> attribute d="M 286.6,NaN L286.6,NaN L531.4,NaN L531.4,NaN z" d3.min.js:5
Error: Invalid value for <path> attribute d="M 1102.6,NaN L1102.6,NaN L1347.3999999999999,NaN L1347.3999999999999,NaN z" d3.min.js:5
Error: Invalid value for <path> attribute d="M 286.6,NaN L286.6,NaN L531.4,NaN L531.4,NaN z" d3.min.js:5
Error: Invalid value for <path> attribute d="M 1102.6,NaN L1102.6,NaN L1347.3999999999999,NaN L1347.3999999999999,NaN z" d3.min.js:5
Error: Invalid value for <path> attribute d="M 286.6,NaN L286.6,NaN L531.4,NaN L531.4,NaN z" d3.min.js:5
Error: Invalid value for <path> attribute d="M 1102.6,NaN L1102.6,NaN L1347.3999999999999,NaN L1347.3999999999999,NaN z" d3.min.js:5
Error: Invalid value for <path> attribute d="M 286.6,NaN L286.6,NaN L531.4,NaN L531.4,NaN z" d3.min.js:5
Error: Invalid value for <path> attribute d="M 1102.6,NaN L1102.6,NaN L1347.3999999999999,NaN L1347.3999999999999,NaN z" d3.min.js:5
Error: Invalid value for <path> attribute d="M 286.6,NaN L286.6,NaN L531.4,NaN L531.4,NaN z" d3.min.js:5
Error: Invalid value for <path> attribute d="M 1102.6,NaN L1102.6,NaN L1347.3999999999999,NaN L1347.3999999999999,NaN z" d3.min.js:5
Error: Invalid value for <path> attribute d="M 286.6,NaN L286.6,NaN L531.4,NaN L531.4,NaN z" d3.min.js:5
Error: Invalid value for <path> attribute d="M 1102.6,NaN L1102.6,NaN L1347.3999999999999,NaN L1347.3999999999999,NaN z" d3.min.js:5
Error: Invalid value for <path> attribute d="M 286.6,NaN L286.6,NaN L531.4,NaN L531.4,NaN z" d3.min.js:5
Error: Invalid value for <path> attribute d="M 1102.6,NaN L1102.6,NaN L1347.3999999999999,NaN L1347.3999999999999,NaN z
但是,如果我使用方法pop
,数据显示正常。 pop();
的唯一问题是我必须知道我的char_data
数组有多少个数组,而且我不可能知道。
有没有人尝试类似的东西或知道如何解决这个问题?
答案 0 :(得分:1)
看起来您要将图表columns
设置为数组columns: [ [ ['name', 'score'] ] ]
内的数组
将columns: [ char_data ]
更改为columns: char_data
$.ajax({
type: 'POST',
url: '/AcademyStat/academy_module_user_report',
dataType: 'json',
data: {
request: 'ajax',
team_id: team_id,
module_id: module_id
},
success: function (data) {
if (data != null) {
for (var i = 0; i < data.length; i++) {
var add_data = [data[i]['name'], data[i]['score']]
char_data.push(add_data);
}
var chart = c3.generate({
bindto: '#score_chart',
data: {
columns: char_data,
type: 'bar'
}
});
}
}
});