id:s_kandaさんのプログラムを元に、月別更新回数をグラフ化してみた

id:s_kandaさんが日記の月別更新回数をグラフ化されていたので、自分もやってみましたよ。

けどエクセルが無いのでデータからグラフが作れない!
ってことでCPANモジュールからグラフ化モジュールを探してみました。
使用したのはhttp://search.cpan.org/~mverb/GDGraph-1.43/Graph.pm:TITLE
こちらのページを参考にしました。


どうやらGD::GRAPHはX軸とY軸のデータを配列に格納し、その配列リファレンスを与えればイメージを生成する模様。
そして参考ページGD::Graphを使ったPerlグラフ生成 | OSDN Magazineのコードを元に出来上がったのが以下のプログラム。

#!/usr/bin/perl
use strict;
use warnings;
use GD::Graph::bars;

my $input_file = 'data.txt';
open(INPUT, "<$input_file")
    or die "$input_fileを開けませんでした: $!";

my (@xLabels, @entry_counts);
while (my $line = <INPUT>) {
    $line =~ /^(\d+),(\d+)/;
    push @xLabels,      $1;
    push @entry_counts, $2;
}

 my @data     = ( \@xLabels,  \@entry_counts );

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

$graph->set( title   => "http://d.hatena.ne.jp/ablabo/",
             y_label => "entry" );

my $image = $graph->plot( \@data ) or die( "Cannot create image" );

open( OUT, ">HatenaGraph.png") or die( "Cannot display image: $!" );
binmode OUT;
print OUT $image->png( );
close OUT;

このプログラムにid:s_kandaさんのプログラムの実行結果をコピペしたファイルを$input_fileとして与えるとこんなイメージが出来上がりました。


見栄えはイマイチですが、フリーのCPANモジュールでグラフ生成できるのは嬉しいっすね。