我遇到了Flot图表和来自AJAX的数据的问题.基本上我创建了数组以显示图形但不知何故我看到轴标签但没有数据.另外我如何进行堆叠或条形图?
编辑:或者任何人都可以告诉我如何使用带有x轴标签的AJAX在flot中显示数据.你可以在http://jsfiddle.net/DaG5W/284/看到代码.有人请告诉我这里我做错了什么?
这是我使用的代码.
$.getJSON(url, function(output) {
var calendar, count, fieldNames, i, j, values, xAxis;
fieldNames = new Array();
i = 0;
while (i < output.length) {
if (fieldNames.indexOf(output[i].FieldName) < 0) {
fieldNames.push(output[i].FieldName);
}
i++;
}
calendar = new Array();
i = 0;
while (i < output.length) {
if (calendar.indexOf(output[i].Calendar) < 0) {
calendar.push(output[i].Calendar);
}
i++;
}
xAxis = [];
i = 0;
while (i < calendar.length) {
xAxis.push([parseInt(i + 1), calendar[i]]);
i++;
}
data = [];
i = 0;
while (i < fieldNames.length) {
values = [];
count = 0;
j = 0;
while (j < output.length) {
if (fieldNames[i] === output[j].FieldName) {
count++;
values.push([parseInt(count), parseInt(output[j].Totals)]);
}
j++;
}
data.push([
{
label: fieldNames[i].toString(),
data: values,
bars: {
show: true
},
lines: {
show: false
}
}
]);
}
return i++;
});
options = {
xaxis: {
ticks: xAxis
}
};
plot = $.plot($("#div"), [data], options);
}
Run Code Online (Sandbox Code Playgroud)
你非常接近一个有效的解决方案.你所做的一切都是在两个地方嵌套了太多的数组:
data.push([
{
label: fieldNames[i].toString(),
data: values,
bars: {
show: true
},
lines: {
show: false
}
}
]);
Run Code Online (Sandbox Code Playgroud)
不需要[]你的系列对象.
plot = $.plot($("#div"), [data], options);
Run Code Online (Sandbox Code Playgroud)
同样在这里,不需要[]左右data.之后,它将图表.见这里:http: //jsfiddle.net/ryleyb/DaG5W/291/