您好我正在使用Google Charts Plugin到我的CakePHP应用程序。
在我的控制器中我做: 有两个函数可以返回两个图形。
function statistics() {
$this->timePerClient();
$this->timePerProjectChart();
}
FUNCTION timePerProject
function timePerProjectChart() {
$totalProjeto = $this->timePerProject();
$tempoTotalGasto = $this->tempoTotalInvestido();
//Setup data for chart
$timePerProjectChart = new GoogleChart();
$timePerProjectChart->type("PieChart");
$timePerProjectChart->options(array('title' => "Percentagem de Tempo (horas) investido por Projeto"));
$timePerProjectChart->columns(array(
//Each column key should correspond to a field in your data array
'projects' => array(
'type' => 'string',
'label' => 'Projeto'
),
'tempoGasto' => array(
'type' => 'time',
'label' => '% horas'
)
));
//You can also use this way to loop through data and creates data rows:
foreach ($totalProjeto as $row) {
$percentagemTempoGasto = ($this->timeToHour($row[0]['tempogasto']) / $tempoTotalGasto[0][0]['tempogasto']) * 100;
$timePerProjectChart->addRow(array('tempoGasto' => $percentagemTempoGasto, 'projects' => $row['Project']['pname']));
}
//Set the chart for your view
$this->set('timePerProjectChart', $timePerProjectChart);
}
在我看来(统计)我做:
<div id="chart_div" ><?php $this->GoogleChart->createJsChart($timePerProjectChart);
$this->GoogleChart->createJsChart($timePerClientChart);
?></div>
但我看不到单个图表。我(单独)测试每个并且正在运行。 我希望在同一视图上放置多个图表。
有可能吗?
感谢
答案 0 :(得分:1)
您的控制器中的统计信息操作发生了什么? $this
是一个对象。
使用该插件需要几个步骤:'
获取数据。使用查找或其他模型方法来获取所需的数据。
设置图表:
$ chart-&GT;类型( “应用于LineChart”);
$ chart-&gt; options(array('title'=&gt;“Recent Scores”));
$ chart-&GT;柱(阵列(
//每个列键应对应于数据数组中的字段
'event_date'=&gt;阵列(
//告诉图表这是什么类型的数据
'type'=&gt; '字符串',
//此列的图表标签
'label'=&gt; '日期'
)
'得分'=&gt;阵列(
'type'=&gt; '数',
'label'=&gt; '得分了'
)
));
通过循环数据向图表添加行,下面给出了一个示例
foreach($ model as $ round){ $ chart-&GT; addRow($轮[ '回合']); }
为您的视图设置图表 - 这个名称必须在视图中的<div id="chart_div"><?php $this->GoogleChart->createJsChart($chart);?></div>
中调用。
$这 - &gt;设置(紧凑( '图表'));
要在单个视图中显示多个图表,您不需要使用默认的chart_div
作为div的ID。您需要设置两个不同的div并相应地更新对象:
组
<?php $timePerProjectChart->div('projectChart');?>
<?php $timePerClientChart->div('clientChart');?>
<div id="projectChart"><?php $this->GoogleChart->createJsChart($timePerProjectChart);?></div>
<div id="clientChart"><?php $this->GoogleChart->createJsChart($timePerClientChart);?></div>