Tech
Webシステムプログラマーによる、ちょっとためになる(かもしれない)情報共有ブログ
 

【第59回】PHPでグラフ作成

 
今日はAndroidの続きの予定でしたが、
時間の都合でPHPでとても簡単なグラフを作成します。

PHPでグラフを作成する方法としては、JpGraphを使う方法とGoogle API Chartを
使う方法がありますが、今回はGoogle API Chartを使う方法です。

ひとつ簡単なサンプルを作ります。
<?php

// グラフタイトルの設定
$title = "グラフのテスト";

// グラフタイトルのエンコード
$title = rawurlencode($title);

// 棒の太さと間隔
$bar = "40,60,140";

// 背景色の設定(背景を灰色、グラフ領域は白)
$background = "bg,s,cccccc|c,s,ffffff";

// グラフの要素をセット
$datas = array(
"cht" => "bvs", // グラフタイプ:横棒
"chs" => "500x300", // グラフサイズ
"chds"=> "0,100", // Y軸
"chco"=> "ff0000", // 棒の色
"chxt" => "y", // 軸ラベル表示位置
"chd" => "t:20,50,85", // 値
"chtt"=> $title, // グラフタイトル
"chts" => "ffffff,18", // タイトル文字色、サイズ
"chbh" => $bar, // 棒の太さ、棒の間隔
"chf" => $background // 背景
);

// グラフのURIを作成
$graph = createUri($datas);

/* グラフのURIを組み立てる関数 */
function createUri($datas){

   // Google Chart APIのアドレス
   $uri = 'http://chart.apis.google.com/chart?';

   // クエリの初期化
   $query = "";

   // クエリを作成
   foreach($datas as $key => $val){

       if( strcmp($query, "") != 0 ){

           $query .= "&amp;";

       }
       $query .= "$key=$val";
   }
       $uri .= $query;

       return $uri;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equive="Content-Type" content="text/html; charset=UTF-8" />
<title>グラフ表示テスト</title>
</head>
<body>
グラフを表示します。<br />
<img src="<?= $graph ?>" alt="棒グラフです" />
</body>
</html>

プログラムを実行してみます。

グラフが表示されます。

graph.png

createUriのメソッドは第47回でQRコードを生成した時と同じものを使ってい
ます。

ここのQRコードも同じGoogle Chart APIで作成したものでした。

グラフのタイプや設定を配列で設定して、createUriメソッドでパラメータを作り、
GoogleAPIのURLを呼び出して表示します。

ただ、細かい設定になるとかなりの工夫が必要で、意外と大変でした。

短いですが、今日はここまでです。

トラックバック(0)

トラックバックURL: http://blog.promob.jp/mt/mt-tb.cgi/305

コメントする