Линия тренда 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>
Да, конечно это строка, я отредактировал свой код, но теперь он выглядит так, смотрите картинку.
попробуйте отсортировать данные, прежде чем рисовать диаграмму --> data.sort([{column: 0}]);
Я не знаю точно, где поставить эту строку. Я отредактировал свой код. Не могли бы вы посмотреть? Это не работает, и, как видно из первого изображения, даты не совпадают. Это должно быть 2019-01-01 и т. д., но это 1985 и т. д. Может быть, это потому, что я использую дату GROUP BY в своем запросе?
У меня есть идентификатор, дата (дата), col2 (int11). В полях: дата в формате 2019-05-29 и в col2 только число, без десятичных знаков
при загрузке данных первый столбец необходимо преобразовать из строки в дату.
поместите значение из php в кавычки и внутри конструктора даты.
например
[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);
Могу я попросить другого? Если я в своем mysql использую GROUP BY YEARWEEK, а затем использую это: new Date('<?php echo date("YW", strtotime($date_string)) ?>') он не показывает годовую неделю, он показывает только год месяц. Пробовал, но безуспешно...
конструктор даты в JavaScript не имеет подписи для года-недели, вам, вероятно, следует продолжать создавать обычную дату, а затем преобразовать ее в неделю, см. --> получить неделю года в javascript, как в php
проверьте этот ответ --> Google Chart рисует линии тренда с датой на оси x