GD::Graphで円グラフ作成

GD::Graphを使って2つの要素を1:99〜99:1までの割合を表示する円グラフを作成するプログラムを作ってみたぞぃ。

#!/usr/bin/perl -w
use strict;
use warnings;
use GD::Graph::pie;

my $img_dir = './img';

mkdir($img_dir);

for my $i (1..99) {
    my @data = (
        [ "a", "b" ],                               # 要素ラベル
        [ $i, 100 - $i ]                            # 角度
    );

    my $gd = GD::Graph::pie->new(240, 240);
       $gd->set(
        title          => 'sample',                 # タイトル
        start_angle    => 180,                      # 開始する角度
        pie_height     => 0,                        # グラフを立体的にする厚み
        transparent    => 0,                        # 透明度
        t_margin       => 10,                       # 枠topと円グラフのマージン
        b_margin       => 10,                       # 枠buttomと円グラフのマージン
        l_margin       => 10,                       # 枠leftと円グラフのマージン
        r_margin       => 10,                       # 枠rightと円グラフのマージン
        axislabelclr   => '#000000',                # 要素ラベルの色
        dclrs          => [ '#ff0000', '#0000ff' ], # 塗りつぶす色
    );

    my $filename = sprintf("%s/%s.gif", $img_dir, $i);

    open(FH, "> $filename") or die("$! -> $filename");
    binmode(FH);
    print(FH $gd->plot(\@data)->gif());
    close(FH);
}

jpegメソッドのほかにgifとかpngメソッドもいけるようぢゃ。