Создание таблицы данных с массивом для Google Chart
Мне нужно создать таблицу данных для передачи диаграммы Google, начиная с массива: я получаю данные, например, температуру, из API OpenWeather в PHP и преобразую массив температур в массив javascript. Из этого массива я строю таблицу данных с этим кодом:
<script type="text/javascript">
var temp=new Array();
<?php
for($i=0;$i<count($temperatura);$i++){?>
temp[<?php echo $i; ?>]="<?php echo "$temperatura[$i]"; ?>";
<?php
}?>
google.charts.load('current', {'packages':['line']});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data2 = new Array();
data2[0] = [ 'Data', 'Temp.' ];
for (i = 0; i < temp.length; i++) {
data2[i + 1] = [ '10/04/2017', 'temp[i]' ];
}
var data = google.visualization.arrayToDataTable(data2, false);
document.write(data); //this cause the message [object Object]
var options = {
chart: {
title: 'Box Office Earnings in First Two Weeks of Opening',
subtitle: 'in millions of dollars (USD)'
},
width: 900,
height: 500,
axes: {
x: {
0: {side: 'top'}
}
}
};
var chart = new google.charts.Line(document.getElementById('chart_div'));
chart.draw(data, google.charts.Line.convertOptions(options));
}
}
</script>
<div id="chart_div"></div>
В браузере я вижу сообщение [объект объекта], и я не понимаю, что не так. Можете мне помочь? Я прочитал несколько похожих вопросов, но они не решили мою проблему.
1 ответ
Это мой новый код:
<script type="text/javascript">
var temp=new Array();
<?php
for($i=0;$i<count($temperatura);$i++){?>
temp[<?php echo $i; ?>]="<?php echo "$temperatura[$i]"; ?>";
<?php
}?>
var dataora=new Array();
<?php
for($i=0;$i<count($dataora);$i++){
?>
dataora[<?php echo $i; ?>]="<?php echo "$dataora[$i]"; ?>";
<?php
}?>
google.charts.load('current', {'packages':['line']});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data2 = new Array();
data2[0] = [ 'Data', 'Temperatura' ];
for (i = 0; i < temp.length; i++) {
data2[i + 1] = [ [dataora[i]], [parseFloat(temp[i]) ] ];
}
var data = google.visualization.arrayToDataTable(data2, false);
document.write(JSON.stringify(data));
console.log(data);
var options = {
chart: {
title: 'Previsioni Temperatura',
subtitle: 'in °C'
},
width: 1000,
height: 500,
axes: {
}
};
Я извлекаю массив дат из результатов openweather. В консоли у меня ошибка:
Ошибка: контейнер не определен jsapi_compiled_default_module.js:63:448
Результат
document.write(JSON.stringify(data));
является:
"{\"cols\":[{\"label\":\"Data\",\"type\":\"timeofday\"},{\"label
\":\"Temperatura\",\"type\":\"timeofday\"}],\"rows\":[{\"c\":[{\"v
\":[\"2017-05-01 15:00:00\"]},{\"v\":[17.35]}]},{\"c\":[{\"v\":[\"2017-05-01
18:00:00\"]},{\"v\":[15.72]}]},{\"c\":[{\"v\":[\"2017-05-01 21:00:00\"]},
{\"v\": [15.32]}]},.....{\"c\":[{\"v\":[\"2017-05-06 12:00:00\"]},{\"v\":
[17.32]}]}]}"
Я пытаюсь больше изменить для Cicle, но безрезультатно. Предложения?