スライスを取り出す

広告

円グラフに表示されているスライスを取り出すことが出来ます。取り出すにはPiePlotクラスで用意されている「Explode」メソッドを使います。

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ピクセル抜き出して表示します。

サンプル

それでは実際に試して見ます。

sample13-1.php

<?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」メソッドを使います。

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」メソッドを使います。

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 )