Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 循环JSON对象并打印到图形_Javascript_Json_Linechart - Fatal编程技术网

Javascript 循环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

基本上,我试图在一张折线图上画多条线。我检索到的数据是JSON格式的。下面是我试图绘制折线图的代码:

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