目次 前へ 次へ

2.3 基本風配図の作成とフォーマット


風配図グラフの作成には最初にライブラリ拡張モジュールである「jpgraph_windrose.php」を含めることが必要です。

最初に含めない場合の風配図の作成は、グラフを作成してから1つあるいは複数の風配図プロットをキャンバスに加えていくという、ライブラリの通常のステップをいくつか踏むことになります。

  1. 基本キャンバスグラフをWindroseGraphクラスのインスタントとして作成する。
  2. 一つまたは複数の風配図プロットのインスタンスをWindrosePlotクラスとして作成し、目盛りと外観の設定を行い、それらをグラフのキャンバスに追加します。
  3. 「WindroseGraph::Stroke()」を呼び出して、グラフをクライアントに返します。いつものようにこれは、グラフをクライアント(つまりブラウザ側)に送り返すか、ファイルにグラフを書き込むために使います。ファイル名はWindroseGraph::Stroke()の第1引数として指定します。

図2.3_1の例はすべてのパラメタに初期設定値のみ使用した場合の風配図です。

 

例2.3_1 16方位の基本風配図

(File:windrose_ex0.php)
<?php // content="text/plain; charset=utf-8"
require_once ('jpgraph/jpgraph.php');
require_once (
'jpgraph/jpgraph_windrose.php');
 
// データは軸番号か方位ラベルの両方で指定可能。
$data = array(
   
=> array(5,5,5,8),
    
=> array(3,4,1,4),
    
'WSW' => array(1,5,5,3),
    
'N' => array(2,3,8,1,1),
    
15 => array(2,3,5));
 
// まず新規の風配図をタイトルを付けて作成。
$graph = new WindroseGraph(400,400);
$graph->title->Set('A basic Windrose graph');
 
// 風配図プロットを作成。
$wp = new WindrosePlot($data);
 
// グラフを追加してブラウザに返す。
$graph->Add($wp);
$graph->Stroke();
?>


図2.3_1 方位の基本風配図[ソース]

他のタイプのグラフ同様、風配図でも1つ以上の風配図プロットを自由に追加したり位置設定したりできます。位置は絶対数でも、グラフ全体の幅・高さに対する比率でも指定できます。

各風配図プロットをグラフに追加するには次のようにレイアウト・クラスのオブジェクトを呼び出すメソッドを使用します。

すべてのプロットが真ん中で衝突するのを避けるため、前のセクションで説明した位置設定とサイズ調整する方法を使用してください。

次のスクリプトは2つのプロットがどのようにひとつのグラフに表示されるかを記述しています。

例2.3_2 一つのグラフに2つの風配図プロットを追加

(File:windrose_2plots_ex1.php)
<?php // content="text/plain; charset=utf-8"
require_once ('jpgraph/jpgraph.php');
require_once (
'jpgraph/jpgraph_windrose.php');
 
// データは軸番号でも方位ラベルでも指定可能。
$data = array(
    
=> array(10,10,13,7),
    
=> array(2,8,10),
    
=> array(1,12,22),
    );
 
$data2 = array(
    
=> array(12,8,2,3),
    
=> array(5,4,4,5,2),
    );
 
// 新規の風配図を作成
$graph = new WindroseGraph(660,400);
$graph->SetShadow();
 
$graph->title->Set('Two windrose plots in one graph');
$graph->title->SetFont(FF_ARIAL,FS_BOLD,14);
$graph->subtitle->Set('(Using Box() for each plot)');
 
$wp = new WindrosePlot($data);
$wp->SetType(WINDROSE_TYPE8);
$wp->SetSize(0.42);
$wp->SetPos(0.25,0.55);
$wp->SetBox();
 
$wp2 = new WindrosePlot($data2);
$wp2->SetType(WINDROSE_TYPE16);
$wp2->SetSize(0.42);
$wp2->SetPos(0.74,0.55);
$wp2->SetBox();
$wp2->SetRangeColors(array('green','yellow','red','brown'));
 
$graph->Add($wp);
$graph->Add($wp2);
 
$graph->Stroke();
?>


図2.3_2 同じグラフに2つの風配図プロットを追加[ソース]


目次 前へ 次へ