GD::Graph
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 | 多くの使用例あり。 |