[sharing] ane baru belajar bikin chart di yii gan, sekedar berbagi tutorial gan, nih ane dapat dari sabitlabscode.wordpress.com
-buat function actionStus pada controller anda
public function actionStus()
{
$sql='SELECT count(id),bidang_id as aa FROM kegiatan GROUP BY bidang_id';
$dataProvider=new CSqlDataProvider($sql,array(
'keyField' => 'id',
));
$this->render('stus',array(
'dataProvider'=>$dataProvider,
));
}
-trus pada viewx buatkan file stus.php
[script yg ini utk chart bar]
<?php $form=$this->beginWidget(‘CActiveForm’, array(
'id'=>'tinstrument-form',
'enableAjaxValidation'=>false,
)); ?>
<center>
<?php
$label=array();
$nilai=array();
foreach($dataProvider->getData() as $i=>$ii)
{
$label[$i]=$ii['aa'];
$nilai[$i]=(int)$ii['count(id)'];
if($ii['aa']=="makan")
{
$label[$i]="makannasi";
}
}
$this->widget(‘application.extensions.highcharts.HighchartsWidget’, array(
‘options’=>array(
'chart'=> array('defaultSeriesType'=>'column',),
'title' => array('text' => ''),
'legend'=>array('enabled'=>false),
'xAxis'=>array('categories'=>$label,
'title'=>array('text'=>''),),
'yAxis'=> array(
'min'=> 0,
'title'=> array(
'text'=>'Jumlah'
),
),
'series' => array(
array('data' => $nilai)
),
'tooltip' => array('formatter' => 'js:function(){ return "<b>"+this.point.name+"</b> :"+this.y; }'),
'tooltip' => array(
'formatter' => 'js:function() {return "<b>"+ this.x +"</b><br/>"+"Jumlah : "+ this.y; }'
),
'plotOptions'=>array('pie'=>(array(
'allowPointSelect'=>true,
'showInLegend'=>true,
'cursor'=>'pointer',
)
)
),
'credits'=>array('enabled'=>false),
)
));
?>
</center>
<?php $this->endWidget(); ?>
[script yg ini utk chart pie]
<?php $form=$this->beginWidget(‘CActiveForm’, array(
'id'=>'tinstrument-form',
'enableAjaxValidation'=>false,
)); ?>
<center>
<?php
$bb=array();
foreach($dataProvider->getData() as $i=>$ii)
$bb[$i]=array($ii['aa'],(int)$ii['count(id)']);
$this->widget(‘application.extensions.highcharts.HighchartsWidget’, array(
‘options’=>array(
'series' => array(
array('type'=>'pie',
'data' => $bb
)
),
'title'=>'',
'tooltip' => array(
'formatter' => 'js:function(){ return "<b>"+this.point.name+"</b> :"+this.y; }'
),
'plotOptions'=>array('pie'=>(array(
'allowPointSelect'=>true,
'showInLegend'=>true,
'cursor'=>'pointer',
)
)
),
'credits'=>array('enabled'=>false),
)
));
?>
</center>
<?php $this->endWidget(); ?>
hasilnya
6712