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系で表示したものをキャプチャ)
さくっと実現できた、素晴らしい。