我有一个用固定数据提供图表的函数:
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Date','CPU Temp'],['2004',340],['2005',460],['2006',1120],['2007',540]
]);
}
我想用从包含两列:date
和 temperature
的数据库表中读取的数据替换固定数据。读取的数据存储在 $json
变量中:
[
{"datain":"2021-04-20 12:00:03","temp":"39.2"},{"datain":"2021-04-21 00:00:05","temp":"40.2"},{"datain":"2021-04-21 12:00:03","temp":"40.8"},{"datain":"2021-08-01 12:00:12","temp":"47.2"}
]
这是我的错误代码:
let date= "";
let temp = "";
for (let i = 0; i < <?php echo count($json)?>; i++){
date = <?php echo $json[0] ?>;
temp = <?php echo $json[1] ?>;
}
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Date',[date,temp]
]);
}
我怎样才能做到这一点?
编辑: 使用@trincot 的建议编辑后的代码:
< script type = "text/javascript" >
google.charts.load('current',{
'packages': ['corechart']
});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Date','Temp'],...<?php echo $json; ?>.map(({
datain,temp
}) => [new Date(datain),parseFloat(temp)])
]);
var options = {
title: 'CPU Temp History',curveType: 'function',legend: {
position: 'bottom'
}
};
var chart = new google.visualization.LineChart(document.getElementById('curve_chart'));
chart.draw(data,options);
} <
/script>
原始代码在这里:chart code