Cakephp2.6 に HighCharts を プラグイン して、グラフ描画
まず
プラグイン用の プログラム一式を、GitHub より
CakePHP の app/Plugin 内に取り込む
すると
app/Plugin/Hightchars/内に
Controller , Model, Vender, View
などのフォルダが作成される。
http://プラグインを導入したサイト/highcharts/highcharts_demo
で、デモのメニュー画面が表示されれば、OK。
このプログラム一式には、コンポーネントやヘルパーの設定も含まれているので
グラフ描画機能を
通常のプログラムの一部として使うことができる。
例えば通常のプログラム:
CharttestsController.php
class CharttestsController extends AppController { public $helpers = array('Highcharts.Highcharts'); public $components = array('Highcharts.Highcharts'); public $name = 'Charttests'; public function index() { $this->pie(); } public function pie() { $chartData = array( array( 'name' => '安部', 'y' => 45.0, 'sliced' => true, 'selected' => true ), array('佐藤', 26.8), array('後藤', 12.8), array('夏目', 8.5), array('芥川', 6.2), array('田中', 0.7) ); $chartName = 'Pie Chart'; $pieChart = $this->Highcharts->create( $chartName, 'pie' ); $this->Highcharts->setChartParams( $chartName, array( 'renderTo' => 'piewrapper', // 表示先のID。このidを取得してグラフを追加します。 'chartWidth' => 500, 'chartHeight' => 450, 'chartTheme' => '', 'title' => '集計', 'plotOptionsShowInLegend' => TRUE, 'creditsEnabled' => FALSE ) ); $series = $this->Highcharts->addChartSeries(); $series->addName('集計')->addData($chartData); $pieChart->addSeries($series); $this->set(compact('chartName')); $this->set(compact('chartData')); } }
View フォルダ内の Charttests フォルダ内に
index.ctp
<div class="chart"> <div id="piewrapper" style="display: block; float: left; width:90%; margin-bottom: 20px;"></div> <div class="clear"></div>
名前 | 値 |
この render関数 により
index.ctp 内に
$(document).ready(function){…
が挿入され
これにより、表示時に、グラフが描画される。
$(document) があるので、jQuery が必要
View-Layouts フォルダ内の
default.ctp 内に
echo $this->Html->script(array('https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js'));
を追加する