pChartというライブラリを使って簡単にグラフを作成します。
pChartは1.X系と2.X系があるようで、現在の最新は2.1.3です。
pChartの公式サイト(たぶん)は以下になります。
pChart 2.0 - a PHP charting library
pChartisanobjectorientedphpchartinglibrary
ダウンロードは以下から行えます、2012年7月時点でpChart2.1.3.zipがダウンロードできます。
http://www.pchart.net/download
展開されたファイルの中で最も重要なのが以下の三つのclassファイルです。
./class/pDraw.class.php
pImage.class.php
pData.class.php
この三つをインクルードすれば基本的なことはできます。
【使用環境について】
以下の条件がある。
・GD version 2.xがインストールされている
・PHP 4.x以上がインストールされている。
インストールされていない場合はyumなどでインストールして下さい。
[gdインストールの例]
# yum install php-gd
【インストール】
pChartを使うには展開してできたディレクトリにパスが通せればOK.
たとえば、/usr/share/pearに配下にpChartディレクトリをコピーして、
php.iniで/usr/share/pearにパスを通す。
【ドキュメント】
英語ですが以下に詳しいドキュメントがありますのでご参照ください。
http://wiki.pchart.net/
また、ダウンロードしたファイルを展開すると、”example”フォルダに
サンプル集がありますので、こちらも大変参考になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
addPoints(array(3,12,15,8,5,-5),"Probe 1"); $MyData->addPoints(array(2,7,5,18,19,22),"Probe 2"); // グラフ上の線の太さの設定 $MyData->setSerieWeight("Probe 1",2); // グラフ上の点線の点の間隔の設定 $MyData->setSerieTicks("Probe 2",4); // グラフの縦軸のラベル $MyData->setAxisName(0,"Temperatures"); // 横軸のラベルの設定 // 横軸用ラベルデータの定義 $MyData->addPoints(array("Jan","Feb","Mar","Apr","May","Jun"),"Labels"); // $MyData->setSerieDescription("Labels","Months"); $MyData->setAbscissa("Labels"); /* pChartオブジェクトの作成 */ $myPicture = new pImage(700,230,$MyData); /* アンチエイリアス処理 */ $myPicture->Antialias = FALSE; /* 背景の描画 */ $Settings = array("R"=>170, "G"=>183, "B"=>87, "Dash"=>1, "DashR"=>190, "DashG"=>203, "DashB"=>107); $myPicture->drawFilledRectangle(0,0,700,230,$Settings); // 背景の描画 (色が重ね合わせられる) $Settings = array("StartR"=>219, "StartG"=>231, "StartB"=>139, "EndR"=>1, "EndG"=>138, "EndB"=>68, "Alpha"=>50); $myPicture->drawGradientArea(0,0,700,230,DIRECTION_VERTICAL,$Settings); $myPicture->drawGradientArea(0,0,700,20,DIRECTION_VERTICAL,array("StartR"=>0,"StartG"=>0,"StartB"=>0,"EndR"=>50,"EndG"=>50,"EndB"=>50,"Alpha"=>80)); // 長方形の追加 $myPicture->drawRectangle(0,0,699,229,array("R"=>0,"G"=>0,"B"=>0)); // タイトルの描画 $myPicture->setFontProperties(array("FontName"=>"fonts/Forgotte.ttf","FontSize"=>8,"R"=>255,"G"=>255,"B"=>255)); $myPicture->drawText(10,16,"Average recorded temperature",array("FontSize"=>11,"Align"=>TEXT_ALIGN_BOTTOMLEFT)); // デフォルトフォントの設定 $myPicture->setFontProperties(array("FontName"=>"fonts/pf_arma_five.ttf","FontSize"=>6,"R"=>0,"G"=>0,"B"=>0)); // グラフ描画エリアの設定 $myPicture->setGraphArea(60,40,650,200); // スケールの描画 $scaleSettings = array("XMargin"=>10,"YMargin"=>10,"Floating"=>TRUE,"GridR"=>200,"GridG"=>200,"GridB"=>200,"DrawSubTicks"=>TRUE,"CycleBackground"=>TRUE); $myPicture->drawScale($scaleSettings); // アンチエイリアスの設定 $myPicture->Antialias = TRUE; // 影の設定 $myPicture->setShadow(TRUE,array("X"=>1,"Y"=>1,"R"=>0,"G"=>0,"B"=>0,"Alpha"=>10)); // 折れ線グラフを描画する $myPicture->drawLineChart(); // グラフ上にプロットを描画する $myPicture->drawPlotChart(array("DisplayValues"=>TRUE,"PlotBorder"=>TRUE,"BorderSize"=>2,"Surrounding"=>-60,"BorderAlpha"=>80)); // 凡例を描画 $myPicture->drawLegend(590,9,array("Style"=>LEGEND_NOBORDER,"Mode"=>LEGEND_HORIZONTAL,"FontR"=>255,"FontG"=>255,"FontB"=>255)); // グラフを表示 $myPicture->autoOutput("pictures/example.drawLineChart.plots.png"); ?> |
/