phpでグラフを書く「Image_Graph」
インストール
pear環境がないのでサイトからダウンロードして使うことにした。
以下の3つをDL
・http://download.pear.php.net/package/Image_Graph-0.7.2.tgz
・http://download.pear.php.net/package/Image_Canvas-0.3.0.tgz
・http://download.pear.php.net/package/Image_Color-1.0.2.tgz
phpのpathの通った場所にImageディレクトリを作成する。
上記3つを解凍し中の
Image_Graph-0.7.2/Graph.php Image_Graph-0.7.2/Graph/* Image_Canvas-0.3.0/Canvas.php Image_Canvas-0.3.0/Canvas/* Image_Color-1.0.2/Color.php
を今作ったImageディレクトリに入れればOK.
あとはソース中で
<?php require_once('Image/Graph.php'); ?>
とすれば、使えるようになります。
pearによるインストールの仕方はここを参照してください。
Side-B » Blog Archive » PHP:PEARのImage_Graphライブラリをインストールしたときのメモ
http://side-b.sto.co.jp/weblog/archives/112
フォントの設定はここらへんを参照
HPのテクメモ | Image_Graphを使ってみる
http://php.atseason.com/?eid=523760
日本語はここらへんを参照
Side-B » Blog Archive » PHP:PEARのImage_Graphライブラリをインストールしたときのメモ:
http://side-b.sto.co.jp/weblog/archives/category/php/pear/image_graph/
fileencodingがutf-8なら、日本語フォントを指定してあげれば、graphの出力をutf-8とかしなくて大丈夫っぽいみたいですが。
使う
こことか
PHPBuilder.com, the best resource for PHP tutorials, templates, PHP manuals, content management systems, scripts, classes and more.
http://www.phpbuilder.com/columns/ian_gilfillan20060613.php3
こことか
pear.veggerby.dk - Image_Graph Samples
http://pear.veggerby.dk/samples/
のソースをコピペしたり、値いじったりして触って行けば、大体理解できます。
あとは、自分がやりたいことの機能があるかソースを調べるとか。
流れ
大体の流れ
- Graphクラスのインスタンス(以下graph)を作成
- graphからfont(フォント)を作成
- fontをカスタマイズ(色、大きさ、フォントタイプ)
- graphにfontを登録
- graphにplotarea(描画領域)を登録(add)
- protareaからdataset(データ)を作成
- datasetに座標や数値を登録
- datasetをprotareaに登録
- marker作って登録等オプションの設定
- protoareaをカスタマイズ(色をつけたり)
- protoareaからaxis(軸)を取り出してカスタマイズ
- protareaからdataset(データ)を作成
- graphからfont(フォント)を作成
- 描画
線グラフ作ってく中でメモ
- add
- 描画領域の追加
- add***
- オブジェクトの追加
- 色関係
- Color.phpに使用可能な色が書いてあるので参照
- orange@0.1のように@のあとに数値を書くと透明度を指定できる
- setFillColor
- 背景色
- setBorderColor
- 枠色
- setFontColor
- 文字色
- 軸関係(axis)
- showArrow/hideArrow
- 軸の矢印の表示/非表示
- forceMinimum/forceMaximum
- 軸の最小値/最大値を強制的に指定
- setLabelInterval
- 軸の表示ラベルの間隔指定
- setInverted
- 上下反転
- showArrow/hideArrow
悩む
1┼ │ 5┼ │ 10└┼-┼-┼-┼-┼ 1 2 3 4 5
こんなかんじでy軸に対して小さい数字が上に来るようなグラフを作りたいのですが、うまくいかない・・・。
<?php $AxisY =& $Plotarea->getAxis('y'); $AxisY->setInverted(true); ?>
でy軸に対して小さい数字が上に来るようには出来るのですが、x軸が勝手に上に表示されるようになってしまうため、思い通りのグラフが作れません!
サンプルにもこの形式のグラフが載っていないので、デフォルトでは作れないようになっているのかなーと感じながらも、ソースを見たりしてうんうん頭を悩ませているところです。
回答を知っている方がいたら教えてください><