通过循环getJson网址在Google Chart上创建多条线

时间:2017-03-25 09:55:39

标签: json loops google-visualization

我有一个getJson函数,带有一个名为“feed”的参数,它循环遍历多个URL。 我想创建一个Google图表,其中有多行与截图类似,每行都来自不同的JSON Feed。 然而,当我尝试时,它似乎只产生一行(我认为因为它循环而只是在循环中拾取最后的url)。 This is what I want to see

这是我添加的代码:

    function chartLoop(feed){
var chartDivs = "chart_div1";
$.getJSON(feed + '&start_date=' + dateFrom + '&end_date=' + dateTo + '&' + order  , function(json){

var dataSet = json.dataset;
var dataAll = json.dataset.data;
var title = dataSet.name;
var database = dataSet.database_code;
var count = dataAll.length;

  // Load the Visualization API and the corechart package.
  google.charts.load('current', {'packages':['corechart']});

  // Set a callback   to run when the Google Visualization API is loaded.
  google.charts.setOnLoadCallback(drawChart);

  // Callback that creates and populates a data table,
  // instantiates the pie chart, passes in the data and
  // draws it.
  function drawChart() {

    // Create the data table.
    var data = new google.visualization.DataTable();



    data.addColumn('string', 'Date');
    data.addColumn('number', 'Amount');


  for(var i = 1; i < count ; i++) { 




   data.addRows([
     [dataAll[i][0], dataAll[i][1]]
   ]);     

   }
    // Set chart options
    var options = {'title':title,
                   'width':1000,
                   'height':700};

    // Instantiate and draw our chart, passing in some options.
    var chart = new google.visualization.LineChart(document.getElementById(chartDivs));
    chart.draw(data, options);
  } 



})};

1 个答案:

答案 0 :(得分:0)

包装在一个闭包/ function而不是for循环中,应该锁定i ...

的值
$.each(new Array(count), function (i) {
   data.addRows([
     [dataAll[i][0], dataAll[i][1]]
   ]);     
});