简体   繁体   中英

Create Dynamic array for google Chart

I am currently trying to generate a line chart using Google charts. so i need to generate a dynamic array of date and the value as given below

 data.addColumn('date', 'Time of Day');
    data.addColumn('number', 'Rating');

 data.addRows([
      [new Date(2015, 0, 1),5],  [new Date(2015, 0, 2), 7],  [new Date(2015, 0, 3), 3]
      ]);

I try to create an array

[[new Date(2015, 0, 1),5], [new Date(2015, 0, 2), 7], [new Date(2015, 0, 3), 3]]

for(var i=1; i<=10 ;i++){ 
    var last = new Date(date.getTime() - (i * 24 * 60 * 60 * 1000));
    var day =last.getDate();
    var month=last.getMonth()+1;
    var year=last.getFullYear();
    row[i]=[]
    row[i][0] = new Date(year,month,day);
    row[i][1]=5;

    }
data.addRows(row);

It show and error in in fireBug

Every row given must be either null or an array.

Sorry I am new in JS.please help me to do. Is any problem in generating array or any other ?

instead of using addRows , use addRow

then just feed the array directly

data.addRow([new Date(year,month,day), i]);

see following example...

 google.charts.load('current', { callback: function () { // create data table var data = new google.visualization.DataTable(); data.addColumn('date', 'Time of Day'); data.addColumn('number', 'Rating'); // load data table var date = new Date(); for (var i=1; i<=10; i++) { var last = new Date(date.getTime() - (i * 24 * 60 * 60 * 1000)); var day = last.getDate(); var month = last.getMonth()+1; var year = last.getFullYear(); data.addRow([new Date(year,month,day), i]); } var chart = new google.visualization.BarChart(document.getElementById('barChart')); chart.draw(data, { title: 'My Bar chart', is3D: 'true' }); }, packages: ['corechart'] }); 
 <script src="https://www.gstatic.com/charts/loader.js"></script> <div id="barChart"></div> 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM