Ошибка несоответствия типов в линейном графике Google - PullRequest
0 голосов
/ 21 мая 2018

Я делаю гугл-график впервые, здесь я столкнулся с ошибкой, я так много пытался ее исправить.

Ошибка: несоответствие типов.Значение 1,5 не соответствует номеру типа в индексе столбца 0

$.ajax({
    type: 'POST',
    dataType: 'json',
    url: '<?php echo base_url();?>index.php/seo/seo/graphData',     
    data: {website_id:website_id,keyword_id:keyword_id,fromdate:fromdate,todate:todate},
    success: function (data1) { 
    var data = new google.visualization.DataTable();
    var arr2 = [];
    //data.addColumn('number', 'A');
    data.addColumn('number', 'Dogs');
    data.addColumn('number', 'Cats');

    for(var i=0; i<data1.query.length; i++){
      var arr = [];

      for(var j=0; j<data1.query[i].date.length; j++)
      { 
       arr.push(data1.query[i].date[j].page);
      } 
      arr2.push([arr]);
      //data.addRow(arr2); 
      } console.table(arr2);
      //var stringData = '[["2004", 1000 , 400], ["2005", 1170, 460], ["2006", 660, 1120], ["2007",1030,540]]';
    data.addRows([arr2]);
    //console.log(arr2);

    var options = {
      hAxis: {
        title: 'Time'
      },
      vAxis: {
        title: 'Popularity'
      },
      series: {
        1: {curveType: 'function'}
      }
    };

    var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
    chart.draw(data, options);
  }
});

Это код, с которым я работаю, пожалуйста, помогите мне.любая помощь заметна.

1 Ответ

0 голосов
/ 21 мая 2018

есть пара проблем

сначала значения "page" заключаются в кавычки, превращая их в строки, а не в цифры

{"page":"13","datee":"2018-05-15 00:00:00"}

используйте parseInt или parseFloat чтобы преобразовать в число

  arr.push(parseFloat(data1.query[i].date[j].page));

, затем в таблицу данных добавляется слишком много массивов
, вместо этого используйте addRow непосредственно в цикле

for(var i=0; i<data1.query.length; i++) {
  var arr = [];

  for(var j=0; j<data1.query[i].date.length; j++) {
    arr.push(parseFloat(data1.query[i].date[j].page));
  }
  data.addRow(arr);
}

см.следующий рабочий фрагмент ...

google.charts.load('current', {
  packages: ['corechart']
}).then(function () {
  var data1 = {"query":[{"datee":"2018-05-14 00:00:00","date":[{"page":"1","datee":"2018-05-14 00:00:00"},{"page":"5","datee":"2018-05-14 00:00:00"}]},{"datee":"2018-05-15 00:00:00","date":[{"page":"9","datee":"2018-05-15 00:00:00"},{"page":"13","datee":"2018-05-15 00:00:00"}]}]};
  var data = new google.visualization.DataTable();
  data.addColumn('number', 'Dogs');
  data.addColumn('number', 'Cats');

  for(var i=0; i<data1.query.length; i++) {
    var arr = [];

    for(var j=0; j<data1.query[i].date.length; j++) {
      arr.push(parseFloat(data1.query[i].date[j].page));
    }
    data.addRow(arr);
  }

  var options = {
    hAxis: {
      title: 'Time'
    },
    vAxis: {
      title: 'Popularity'
    },
    series: {
      1: {curveType: 'function'}
    }
  };

  var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
  chart.draw(data, options);
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart_div"></div>
...