--

--

コメント

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
管理者にだけ表示を許可する

この記事のトラックバックURL

http://welcomevac201world.blog84.fc2.com/tb.php/375-e01c4ee6

04

26

コメント

CakePHPでpChartを使う

CakePHP1.3.8
pChart2.1.1



(1)pChartをダウンロードし、解凍する。

pChart
http://www.pchart.net/

あとから見たとき面倒なので、app/vendorsフォルダに解凍したディレクトリごとつっこみ、
pChartという名前にする。

(2)include_pathを通す。

app/vendors/inlude_path.php

<?php
ini_set('include_path', dirname(__FILE__) . PATH_SEPARATOR . get_include_path());
ini_set('include_path', get_include_path() . PATH_SEPARATOR . APP . 'vendors');
ini_set('include_path', get_include_path() . PATH_SEPARATOR . APP . 'vendors'.DS.'pChart');



(3)app/app_controller.phpの先頭にimportを追加

App::import('Vendor', 'include_path');

class AppController extends Controller {

~略~



(4)pChartで日本語を使うため、フォントを設定。

IPAフォント
http://ossipedia.ipa.go.jp/ipafont/index.html


こちらのブログで他のフリーフォントが紹介されていまーす。
http://blog.4galaxy.net/56.html


IPAex明朝(ipaexm.ttf)、IPAexゴシック(ipaexg.ttf)をダウンロードして、
pChartのfontsフォルダにコピーする。


(5)app/webroot/imgの下に、グラフ用のディレクトリを作成(graph)
 書込み権限を与える。

(6)ここからはサンプルです。

例として、pChartのBasic Syntaxをやってみます。

infos_controller.phpにサンプルソースを追加

/**
* グラフ画像作成
*/
function exam_graph() {
  App::import('Vendor', 'pData', array('file' => 'pChart'.DS.'class'.DS.'pData.class.php'));
  App::import('Vendor', 'pDraw', array('file' => 'pChart'.DS.'class'.DS.'pDraw.class.php'));
  App::import('Vendor', 'pImage', array('file' =>'pChart'.DS.'class'.DS.'pImage.class.php'));

  /* Create your dataset object */
  $myData = new pData();

  /* Add data in your dataset */
  $myData->addPoints(array(VOID,3,4,3,5));

  /* Create a pChart object and associate your dataset */
  $myPicture = new pImage(700,230,$myData);

  /* Choose a nice font */
  $myPicture->setFontProperties(array('FontName'=> APP.'vendors'.DS.'pChart'.DS.'fonts'.DS.'ipaexg.ttf', 'FontSize'=>11));

  /* Define the boundaries of the graph area */
  $myPicture->setGraphArea(60,40,670,190);

  /* Draw the scale, keep everything automatic */
  $myPicture->drawScale();

  /* Draw the scale, keep everything automatic */
  $myPicture->drawSplineChart();

  $file_name = 'exam_'.date('YmdHis').'.png';

  /* Build the PNG file and send it to the web browser */
  $myPicture->render(IMAGES.'graph'.DS.$file_name);

  $this->set('file_name', $file_name);
}



infos/exam_graph.ctp

<?php
echo $html->image('graph'.DS.$file_name);



こんな感じに出ましたー(´∀`)


pChart.jpg



今回pChartにした理由。

携帯電話でも出力したかった!!

一度作った画像は、file_existsであれば、
それを出せばいいかなーと。


これならかんたんだと思います!


ついでに日本語のテスト↓

function exam_graphを一部修正するだけ。

function exam_graph() {
  App::import('Vendor', 'pData', array('file' => 'pChart'.DS.'class'.DS.'pData.class.php'));
  App::import('Vendor', 'pDraw', array('file' => 'pChart'.DS.'class'.DS.'pDraw.class.php'));
  App::import('Vendor', 'pImage', array('file' =>'pChart'.DS.'class'.DS.'pImage.class.php'));

  /* Create your dataset object */
  $myData = new pData();

  /* Add data in your dataset */
  $myData->addPoints(array(VOID,3,4,3,5),"今回");
  $myData->addPoints(array("い","ろ","は","に","ほ"),"Labels");
  $myData->setAbscissa("Labels");

  /* Create a pChart object and associate your dataset */
  $myPicture = new pImage(700,230,$myData);

  /* Choose a nice font */
  $myPicture->setFontProperties(array('FontName'=> APP.'vendors'.DS.'pChart'.DS.'fonts'.DS.'ipaexg.ttf', 'FontSize'=>11));

  /* Define the boundaries of the graph area */
  $myPicture->setGraphArea(60,40,670,190);

  /* Draw the scale, keep everything automatic */
  $myPicture->drawScale();

  /* Draw the scale, keep everything automatic */
  $myPicture->drawSplineChart();

  $myPicture->drawLegend(580,30,array("Style"=>LEGEND_ROUND,"Alpha"=>20,"Mode"=>LEGEND_HORIZONTAL));

  $file_name = 'exam_'.date('YmdHis').'.png';

  /* Build the PNG file and send it to the web browser */
  $myPicture->render(IMAGES.'graph'.DS.$file_name);

  $this->set('file_name', $file_name);
}



pChart2.jpg
関連記事
スポンサーサイト
管理者にだけ表示を許可する

この記事のトラックバックURL

http://welcomevac201world.blog84.fc2.com/tb.php/375-e01c4ee6

ようこそ!

ブロとも申請フォーム

ブロ友申請大歓迎です!
一覧に表示されるので自動で相互リンクになります!

>> ブロ友申請はこちら <<

検索フォーム

最近のコメント

メールフォーム

名前:
メール:
件名:
本文:

FC2ブログランキング

人気ブログランキング

人気ブログランキング

ブログ村

アクセスランキング

[ジャンルランキング]
育児
959位
アクセスランキングを見る>>

[サブジャンルランキング]
パパ育児
75位
アクセスランキングを見る>>

やーんは今、

ブロとも一覧

Designed by

Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。