我从数据库中提取记录后创建了一个数组。该数组如下:
// $xyz array
Array
(
[f30] => Array
(
[December 2012] => 71
[November 2012] => 70
[October 2012] => 66
)
[f32] => Array
(
[December 2012] => 85
[November 2012] => 83
[October 2012] => 81
)
)
如果是单线图,我可以毫不费力地绘制它。但是,当我尝试绘制多线图时,我遇到了很多问题。下面是我尝试使用以下内容绘制数据的代码:
$table = array();
$table['cols'] = array(
array('label' => 'Month', 'type' => 'string')
);
$rows = array();
foreach($xyz as $form=>$hhh)
{
$table['cols'][] = array('label'=>$form, 'type'=>'number');
foreach($hhh as $mnth=>$pt)
{
$temp = array();
$temp[] = array('v' => (string) $mnth);
$temp[] = array('v' => (int) $pt);
$rows[] = array('c'=>$temp);
}
}
$table['rows'] = $rows;
$jsonTable = json_encode($table);
<script type="text/javascript">
google.load('visualization', '1', {'packages':['corechart']});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = new google.visualization.DataTable(<?=$jsonTable?>);
var options = {
title: 'Some title',
is3D: 'true',
width: 800,
height: 600
};
var chart = new google.visualization.LineChart(document.getElementById('divID'));
chart.draw(data, options);
}
</script>
我通过更改$temp
,$rows
和$table['rows']
数组的位置尝试了各种排列和组合,但我似乎无法在两行中绘制两条线单个图表。我可能搞乱了数组的位置。
我设法得到的最接近的如下:
但我的预期输出是这样的
f30
和f31
取代Sales
和Expenses
以及October
,November
和December
进入2004
,2005
,2006
,2007
答案 0 :(得分:2)
我自己想通了。天哪!真是一种解脱。我只需要这种格式的数组:
Array
(
[December 2012] => Array
(
[0] => 71
[1] => 85
)
[November 2012] => Array
(
[0] => 70
[1] => 83
)
[October 2012] => Array
(
[0] => 66
[1] => 81
)
)
其余的是foreach
循环中的一个小修改,瞧!它完成了。
答案 1 :(得分:0)
您还可以为每个f [30]和f [31]创建一个数据表 然后呢 google.visualization.data.join()
这基本上加入了关键栏的两个图表 - 即