Graph::Easyでグラフ図を描く(SVG出力)

Graph::Easyというモジュールで簡単にグラフ図をかけることを知った。ちょこっと説明したい時に重宝しそう。

参考にさせて頂いたサイト:
Graph::EasyとGraphvizでステキなグラフを作ってみる - iDeaList::Writing


ただ、画像ファイルへの出力はdotが必要という所がちょっと気になった。


ところがマニュアルを読んでみると、SVG(Scalable Vector Graphics)出力に対応していること。気になったのでちょこっと試してみた。


ASCII出力では、見栄え的に厳しいところもSVG出力がうまくいけば解決できそう。

  • 導入はさくっと
cpan[2]> install Graph::Easy
cpan[2]> install Graph::Easy::As_svg
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
use Graph::Easy;

my $graph = Graph::Easy->new();
$graph->add_edge_once ('AAA', 'BBB');
$graph->add_edge_once ('test', 'test2');
$graph->add_edge_once ('BBB', 'test2');
print $graph->as_ascii();
#print $graph->as_svg();
  • ASCII出力
+-----+     +-----+     +-------+     +------+
| AAA | --> | BBB | --> | test2 | <-- | test |
+-----+     +-----+     +-------+     +------+
  • SVG出力(Firefox3系で表示したものをキャプチャ)

さくっと実現できた、素晴らしい。