目次 前へ 次へ

4.1.1 基本テーブル

テーブルはGTextTableクラスのインスタンスとして作成され、サンプル・アイコンや、テキスト、その他のプロット・オブジェクトとほぼ同様に操作できます。Graph::Addメソッドによって、X軸Y軸の座標のグラフに追加することもできます。

テーブルの作成は「jpgraph_table.php」ファイルを呼び出すことから始めます。このファイルにはGTextTableクラスのクラス定義が含まれています。テーブルを作成するには、通常のグラフ・エリアに使われるGraphクラスのインスタンスをまず作成するか、それともCanvasGraphクラスのインスタンスで単体のテーブルを作成するかを決める必要があります。

どちらにするかを決めれば、新規テーブルの作成は、GTextTableクラスのインスタンスを作成し、行や列のサイズを決定するための初期設定メソッドを呼び出すだけでできます。単体のテーブルを表示するには、グラフ・エリアであるCanvasGraphも作成してテーブルをグラフに追加する必要があります。

<?php
require_once "jprgraph/jpgraph.php";
require_once 
'jpgraph/jpgraph_canvas.php';
require_once 
"jprgaph/jpgraph_table.php";
 
// 基本となるキャンバス・グラフを設定する。
$graph = new CanvasGraph(630,600);
 
// 基本グラフ・エリアを作成する。
$table = new GTextTable();
$table->Init(5,7); // Create a 5 rows x 7 columns table
 
...
 
// テーブルをグラフ・エリアに追加する。
$graph->Add($table);
 
// グラフ・エリアをクライアントに返す。
$graph->Stroke();
?>

これまで見てきたように、テーブルの実際のサイズを指定することは(可能ですが)必要ではありません。実際のテーブル・サイズはテーブルのコンテンツによって自動的に決定されます。

テーブル内のセルには連番が付加されます。(0,0)は一番上の左端、(n-1, m-1)は一番下の右端で、nが行数、mが列数です。

次に、テーブルにデータを入力していきます。各セル内の内容は次のメソッドの中から指定します。

The Set()メソッドは2つの異なる方法で呼び出すことができます。

ひとつは、ゼロで始まる行・列番号で個別のセルの値を指定する方法です。例えば、上の例を継続すると、一番上の行(0)の1列目と2列目の2つのセルに次のように値を入れます。

...
$table->Set(0,0,1);
$table->Set(0,1,1);
...

もうひとつは(もう少し簡潔な方法かもしれませんが)、適切なの値を含む二次元配列をそれぞれ、最初でかつ最後の引数としてSet()メソッドに格納する方法で、次のように記述します。

$data = array( array( 12, 7), array( 10, 5)); $table->Set($data)

テーブルをマトリックスとして直接指定するなら、マトリックス自体のサイズが自動的に決定するので最初のInit()メソッドを呼び出す必要はありません。

次の基本サンプルコードは連続した値を格納した2行4列の配列テーブルを作成する方法です。ここではテーブルを追加するグラフ・エリアを準備するためにCanvasGraphを使っています。このスクリプトの結果は次のように表示されます。

例4.1 最も基本的な2行4列テーブル

(File: table_howto1.php)
<?php // content="text/plain; charset=utf-8"
require_once 'jpgraph/jpgraph.php';
require_once 
'jpgraph/jpgraph_canvas.php';
require_once 
'jpgraph/jpgraph_table.php';
 
// Create a canvas graph where the table can be added
$graph = new CanvasGraph(70,50);
 
// Setup the basic table
$data = array( array(1,2,3,4),array(5,6,7,8));
$table = new GTextTable();
$table->Set($data);
 
// Add the table to the graph
$graph->Add($table);
 
// ... and send back the table to the client
$graph->Stroke();
 
?>


図4.1.1 最も基本的な2行4列テーブル[ソース]

上の例では、簡単なショートカットも利用しています。テーブルに入力するデータが2次元配列で指定されている場合、テーブル・サイズは与えられた配列によって決定されるので、Init()メソッドを呼び出す必要がありません。


目次 前へ 次へ