4

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 ?

1 Answer 1

4

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>

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.