- Home ›
- JpGraphを使ったグラフの描画 ›
- 円グラフ(PiePlot) ›
- HERE
スライスを取り出す
円グラフに表示されているスライスを取り出すことが出来ます。取り出すにはPiePlotクラスで用意されている「Explode」メソッドを使います。
Explode function Explode($aExplodeArr)
Explode one or more slices as specified radius. Parameter: $aExplodeArr Explode specification
引数にはスライス毎にどれだけのピクセル幅を抜き出すかを配列で指定します。抜き出さないスライスには「0」を指定して下さい。
実際には次のように記述します。
include ("jpgraph/jpgraph.php"); include ("jpgraph/jpgraph_pie.php"); $data = array(32, 21, 24, 35, 18); $pieplot = new PiePlot($data); $pieplot->Explode(array(0, 0, 10, 0, 20)); $graph = new PieGraph(250, 200); $graph->Add($pieplot);
この場合、全部で5つのスライスが円グラフには表示されていますが、3番目と5番目のスライスだけ中心から10ピクセルと20ピクセル抜き出して表示します。
サンプル
それでは実際に試して見ます。
<?php include ("jpgraph/jpgraph.php"); include ("jpgraph/jpgraph_pie.php"); $graph = new PieGraph(250, 200, "auto"); $graph->SetFrame(true); $data = array(32, 21, 24, 35, 18); $pieplot = new PiePlot($data); $pieplot->Explode(array(0, 0, 10, 0, 20)); $graph->Add($pieplot); $graph->Stroke(); ?>
上記のPHPファイルをブラウザで開いてみます。ブラウザには次のように表示されます。
特定の1つのスライスだけを抜き出す
「Explode」メソッドの場合は抜き出さないスライスも含めて全てのスライスに対して抜き出す値を指定する必要があります。そうではなく、どれか1つだけのスライスを指定して抜き出す設定が可能です。1つだけを取り出すにはPiePlotクラスで用意されている「ExplodeSlice」メソッドを使います。
ExplodeSlice function ExplodeSlice($e,$radius)
Explode a single slice a specified radius Parameter: $e Which slice to explode $radius Radius to explode to(Default 20)
1番目の引数に抜き出すスライス番号を指定します。スライス番号はスライスが表示される順に0から開始して数えた番号となります。
2番目の引数にどれだけのピクセル幅を抜き出すかを指定します。
実際には次のように記述します。
include ("jpgraph/jpgraph.php"); include ("jpgraph/jpgraph_pie.php"); $data = array(32, 21, 24, 35, 18); $pieplot = new PiePlot($data); $pieplot->ExplodeSlice(2, 10); $graph = new PieGraph(250, 200); $graph->Add($pieplot);
この場合は3番目のスライスを10ピクセルだけ中心から抜き出します。
全てのスライスを同じだけ抜き出す
全てのスライスを同じピクセル幅だけ抜き出す場合にはPiePlotクラスで用意されている「ExplodeAll」メソッドを使います。
ExplodeAll function ExplodeAll($radius)
Explode a single slice a specified radius Parameter: $radius Explode radius(Default 20)
1番目の引数にどれだけのピクセル幅を抜き出すかを指定します。
実際には次のように記述します。
include ("jpgraph/jpgraph.php"); include ("jpgraph/jpgraph_pie.php"); $data = array(32, 21, 24, 35, 18); $pieplot = new PiePlot($data); $pieplot->ExplodeAll(10); $graph = new PieGraph(250, 200); $graph->Add($pieplot);
この場合は全てのスライスを10ピクセルだけ中心から抜き出します。
( Written by Tatsuo Ikura )