This widget for use with the Yii Framework utilises the Amchart plugin visualize (http://www.amcharts.com/) to render graphs and charts for your web application.
Requirements ¶
- Yii 1.1 or above
Usage ¶
The following code is a simple instance of Widget, you can create the following chart types:
- Pie
- Line
- Area
- Column
- Bar
- Scatter
The configuration parameter have the same name of the Chart and Grpah defined by AmChart, you can the AmChart Doc and Amchart Examples
// DataProvider, you can use any Provider that implement IDataProvider
$dataProvider = new CActiveDataProvider('OlimpicMedals');
//Chart With bar & line graph
$this->widget('application.extensions.amcharts.EAmChartWidget',
array(
'width' => 700, // width of the Chart
'height' => 400, // height of the chart
'chart'=>array(// collections of grpah to display into the chart
'dataProvider'=>$dataProvider, // DataProvider
'categoryField' => 'Date' // Field of the DataProvider to set on the X Axis
),
'graphs'=>array(
array(
'valueField' => 'GoldMedals', // Field of the DataProvider to set the Y Axis
'title'=>'Value', // Title of the , used on the Legend
'type' => 'bar' // Type of Graph
),
array(
'valueField' => 'SilverMedals',
'title'=>'Value',
'type' => 'line',
'fillColors'=>'Transparent',
'fillAlphas'=>'0',
'lineColor'=>'#EE2299',
'bullet'=>'round'
)),
'categoryAxis'=>array(
'title'=>'Species Name'
),
'valueAxis'=>array(
'title'=>'Identifier')
));
// Chart with pie
$this->widget('application.extensions.amcharts.AmChartWidget',
array(
'width' => 700,
'height' => 400,
'Chart'=>array(
'dataProvider'=>$arrayData,
'titleField' => 'Country',
'valueField' => 'Medals',
'type' => 'pie'
)
));
Installation ¶
- Download the widget from here
- Extract the following Widget on /YourProject/protected/extensions/
Hi,
Hi, good work.i used it and it works fine
Got Undefined Result
I use this code to get the data from database
$sql="SELECT pkprojectid,projectname, count( * ) AS total_requests FROM `tblproject` , `tblinforequest` WHERE tblinforequest.fkprojectid = tblproject.pkprojectid GROUP BY projectname LIMIT 0 , 30"; $result = Yii::app()->db->createCommand($sql)->queryAll(); $dataProvider=new CArrayDataProvider($result,array( 'keyField' => 'ID')); $this->render('graphs',array('result'=>$dataProvider));
and this is my view file
$this->widget('ext.amcharts.EAmChartWidget', array( 'width' => 700, //height of the chart 'height' => 400,//width of the chart 'chart'=>array( 'dataProvider'=>$result,//CDataProvider 'titleField' => 'Projectname',//Title Field 'valueField' => 'total_requests',// Value Field 'type' => 'pie'//Type of Chart ) ));
But i got just three verticals lines with undefined headings.
Reply: Got Undefined Result
Hi Amjad Khan, making a faster review of your code your dataset retrieve the "projectname" field in lowercase and you are using with capital letter Projectname into the view
Attributes
This version can not import all attributes from query! For using all of theme you should import the array of dataProvider not attributes of that!
1-Open { EAmChartWidget.php }
2-Find { run() } method
3-Remove { ->attributes } from this statement:
foreach ($this->chart['dataProvider'] as $modelData->attributes)
If you have any questions, please ask in the forum instead.
Signup or Login in order to comment.