Линия тренда Google-диаграммы не отображается

Линия тренда на графике Google не отображается. Пытался поместить код в vAxis, hAxis и только в опции, но безуспешно. Я знаю, что первый столбец должен быть числом или датой и так далее, а мой первый столбец - датой.

 <script type="text/javascript">
  data.sort([{column: 0}]);
  google.charts.load('current', {'packages':['corechart']});
  google.charts.setOnLoadCallback(drawChart);

  function drawChart() {
    var data = google.visualization.arrayToDataTable([
      ['Date', 'Sum'],
       <?php while($row = mysqli_fetch_assoc($result)) { ?>

      [<?php echo $row['date'] ?>,  <?php echo $row['col2'] ?> ],

    <?php } ?>
    ]);

    var options = {
         legend: { position: 'bottom' },
        title: 'Sum per day',
         hAxis : { textStyle : { fontSize: 10 } },
    vAxis: { viewWindowMode: 'explicit', viewWindow: { min: 0 } },
    trendlines: { 0: {} }
    };

    var chart = new google.visualization.LineChart(document.getElementById('line_chart'));
    chart.draw(data, options);
  }
</script>

введите описание изображения здесь


person John_Doe    schedule 27.05.2019    source источник
comment
проверьте этот ответ - ›Google Chart рисует линии тренда с датой на оси x   -  person WhiteHat    schedule 27.05.2019
comment
Да, конечно, это строка, я редактировал свой код, но теперь он выглядит так, см. Рисунок.   -  person John_Doe    schedule 27.05.2019
comment
попробуйте отсортировать данные, прежде чем рисовать диаграмму - ›data.sort([{column: 0}]);   -  person WhiteHat    schedule 27.05.2019
comment
Я точно не знаю, где поставить эту строчку. Я отредактировал свой код. Вы можете посмотреть? Это не работает, и, как вы можете видеть на первом рисунке, даты не совпадают. Это должно быть 01.01.2019 и так далее, но это 1985 год и т. Д. Может быть, это потому, что я использую дату GROUP BY в своем запросе?   -  person John_Doe    schedule 28.05.2019
comment
У меня есть id, date (дата), col2 (int11). В полях: дата в формате 2019-05-29 и в col2 только число, без десятичных знаков   -  person John_Doe    schedule 29.05.2019


Ответы (1)


при загрузке данных первый столбец необходимо преобразовать из строки в дату.
поместите значение из php в кавычки и внутри конструктора даты.

e.g.

[new Date('<?php echo $row['date'] ?>'),  <?php echo $row['col2'] ?> ],

если у вас все еще есть проблемы с волнистой линией,
отсортируйте данные перед рисованием ...

data.sort([{column: 0}]);
var chart = new google.visualization.LineChart(document.getElementById('line_chart'));
chart.draw(data, options);
person WhiteHat    schedule 29.05.2019
comment
Могу я спросить у другого? Если я в моем mysql использую GROUP BY YEARWEEK, а затем использую это: new Date ('‹? Php echo date (Y-W, strtotime ($ date_string))?›') Он не показывает годовую неделю, он показывает только год-месяц. Пытался, но безуспешно ... - person John_Doe; 31.05.2019
comment
конструктор даты в JavaScript выполняет нет подписи для года-недели, вам, вероятно, следует продолжить создание обычной даты, а затем преобразовать ее в неделю, см. - ›получить неделю года в javascript, как в php - person WhiteHat; 31.05.2019