GD::Graph

最終更新日時:2007-08-12 23:51:54
Perl:画像関連

GD::Graph とは


GD::Graph は使用することにより Perl を使って非常に手軽にグラフを描画することができます。
手軽な上に、ある程度凝ったこともグラフも作成できるので、たいていのグラフは GD::Graph にて十分対応可能だと思います。
また、名称を見ても分かるとおり、GD を使用しますので、事前にインストールしておく必要があります。

使用方法


簡単な使い方を少々。
まずは、描画したいグラフに対応するモジュールを使用することを宣言します。

 use GD::Graph::lines;


描画したいデータ、ラベルをそれぞれ配列に格納します。
それぞれのデータとラベルのデータ数は同一にする必要があります。

 my @d1 = (...);
 my @d2 = (...);
 my @d3 = (...);
 my @label = (...);


グラフのサイズを指定して初期化します。

 my $graph = GD::Graph::lines->new(800, 600);


データを指定して、グラフを出力します。
ちなみに下記の title はグラフのタイトル、x_label_skip は X 軸のラベルを表示する間隔、y_max_value,y_min_value は Y 軸の最大値と最小値を指定しています。
set メソッドではその他にも色々設定可能なので、perldoc GD::Graph を見てみましょう。

 $graph->set( title   => "Test Graph",
              y_label => "yyyy",
              x_label_skip => 6,
              y_max_value => 100,
              y_min_value  => 0,
            );
 my @data     = (\@label, \@d1, \@d2, \@d3);
 my $image = $graph->plot( \@data ) or die( "Cannot create image" );
 print $image->png();


色の指定


以下のようにしてグラフの色を指定することができます。

まず、use GD::Graph::colour; した上で、以下のようにカラー値を読み込ませます。

 GD::Graph::colour::read_rgb("/usr/X11R6/lib/X11/rgb.txt");


そして、$graph->set する時に、以下のような感じで dclrs 要素の指定を追加します。

 dclrs => [ qw(blue green black red) ],


凡例を表示する


以下のようにして凡例を表示することができます。

まず、以下のような感じで $graph->set する時に legend_placement 要素の指定を追加します。

 legend_placement => 'R',


そして、以下のような感じで凡例のラベルを指定します。

 $graph->set_legend(qw(graph1 graph2 graph3));


Y 座標を2系統持たせる


以下のようにすると、Y 座標を2系統持たせ、それぞれ左右に Y 軸のラベルを表示するようなグラフを作成することができます。

 $graph->set( title   => "2 Way Graph",
              two_axes => 1,               # これを指定する必要あり
              y1_label => "count",
              y2_label => "size",
              x_label_skip => 6,
              y1_max_value  => get_max_value($max_count),
              y1_min_value  => 0,
              y2_max_value  => get_max_value($max_size),
              y2_min_value  => 0,
              dclrs => [ qw(blue red) ],
              legend_placement => 'B',
            );


リンク


サイト名概要
Perl(Active Perl5.6)GDでグラフを作成する-GDGraph多くの使用例あり。


お問い合わせは 掲示板 にて。