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