我正在尝试使用他们的API和JSON创建Google折线图。
硬编码,此图表有效:
<script type="text/javascript">
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Date', 'Sales'],
['Jun 25', 12.25],
['Jun 26', 8.00],
['Jun 27', 20.50]
['Jun 28', 12.75]
]);
var options = {
};
var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
</script>
但是,尝试使用JSON填充它,我无法使其工作:
<?php
$data = array();
$data["Date"] = "Sales";
$data["Jun 25"] = "12.25";
$data["Jun 26"] = "8.00";
$data["Jun 27"] = "20.50";
$data["Jun 28"] = "12.75";
$data = json_encode($data);
?>
<script type="text/javascript">
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable(<?php echo $data; ?>);
var options = {
};
var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
</script>
我显然没有正确编码数组。 Google有一个关于如何使用JSON数据填充图表的示例页面:https://developers.google.com/chart/interactive/docs/php_example
但是,我找不到任何关于如何使用这样的简单折线图设置JSON数据的示例。
答案 0 :(得分:13)
你很亲密。
$data = array(
array('Date', 'Sales'),
array('June 25', 12.25),
array('June 26', 8.00)
);
json_encode($data);
<强>输出强>
[["Date","Sales"],["June 25",12.25],["June 26",8]]
答案 1 :(得分:0)
乔希已经提供了正确的答案。但是如果你想使用google.visualization.DataTable
而不是google.visualization.arrayToDataTable
,首先你可以单独添加列然后添加json编码的php数组:
var data = new google.visualization.DataTable();
data.addColumn('string', 'Date');
data.addColumn('string', 'Sales');
data.addRows(<?php echo $data; ?>);