Javascript 循环JSON对象并打印到图形
基本上,我试图在一张折线图上画多条线。我检索到的数据是JSON格式的。下面是我试图绘制折线图的代码:Javascript 循环JSON对象并打印到图形,javascript,json,linechart,Javascript,Json,Linechart,基本上,我试图在一张折线图上画多条线。我检索到的数据是JSON格式的。下面是我试图绘制折线图的代码: function getLineChartData(busStopNo) { var Data = JSON.stringify({ busStopNo: busStopNo }); $.ajax({ url: "index.aspx/getLineChartData", type: "POST", data: Data, contentType: "applic
function getLineChartData(busStopNo) {
var Data = JSON.stringify({ busStopNo: busStopNo });
$.ajax({
url: "index.aspx/getLineChartData",
type: "POST",
data: Data,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
alert(data.d);
var parsed = JSON.parse(data.d);
$.each(parsed, function (i, jsondata) {
var time = jsondata.time;
var t1_10 = jsondata.t1_10;
var t11_20 = jsondata.t11_20;
var t21_50 = jsondata.t21_50;
var t51_above = jsondata.t51_above;
var dataOne = new google.visualization.DataTable();
dataOne.addColumn('number', 'Time');
dataOne.addColumn('number', 'Total1_10');
dataOne.addColumn('number', 'Total11_20');
dataOne.addColumn('number', 'Total21_50');
dataOne.addColumn('number', 'Total51_above');
dataOne.addRows([
[time, t1_10, t11_20, t21_50, t51_above]
]);
var title = "Age Group Population at Bus Stop " + busStopNo;
var optionsOne = {
chartArea: { height: 300, top: 30, left: 50 },
fontName: 'Arial',
legend: { alignment: 'center' },
pieSliceText: 'none',
tooltip: { trigger: 'none' },
title: title,
'width': 330,
'height': 400,
sliceVisibilityThreshold: 0
};
var chartOne = new google.visualization.LineChart(document.getElementById('lineChart'));
chartOne.draw(dataOne, optionsOne);
});
},
error: function (request, state, errors) {
}
});
我设法得到了数据。但不知何故,我的折线图一直循环到最后,只绘制最后一组数据,而不是在折线图上绘制每一组数据。我想知道是否有办法将我收到的数据存储在数组中。从数组中,我再次循环,画出折线图
我不确定我上面提到的方法是否是最好的。提前谢谢
这条线
var chartOne = new google.visualization.LineChart(document.getElementById('lineChart'));
将删除折线图
节点中的任何内容,然后添加新折线图。这意味着你只能看到最后一个
如果需要多个图表,则需要创建单个DOM节点作为父节点
如果希望所有数据都在一个图表中,则需要在循环开始之前创建数据表,在循环中添加每一行,然后在循环结束之后呈现图表一次:
var dataOne = new google.visualization.DataTable();
$.each(parsed, function (i, jsondata) {
...
dataOne.addRows([
[time, t1_10, t11_20, t21_50, t51_above]
]);
...
} );
var chartOne = new google.visualization.LineChart(document.getElementById('lineChart'));
var optionsOne = {...};
chartOne.draw(dataOne, optionsOne);
澄清一下:将数据添加到表中是可行的,但打印相同的数据失败?我正在将数据手动添加到数据库中。但是我的折线图只画了最后一次,是18,而不是7-18