Perl GraphViz Module
忘れないウチに。昨日の続き…というか、単に GraphViz Module の使い方についてメモを。
use strict; use warnings; use GraphViz; my $g = GraphViz->new(layout=>"fdp"); $g->add_node( "hoge", shape=>'record', label=>"hoge|{<port0>h10|<port1>h2|<port2>h3}"); $g->add_node( "fuga", shape=>'record', label=>"fuga|{<port0>f1|<port1>f2|<port2>f3}"); $g->add_edge( "hoge", "fuga"); $g->add_edge( "hoge", "fuga", from_port=>0, to_port=>1 ); $g->add_edge( "fuga", "fuga", from_port=>0, to_port=>1 ); $g->add_edge( "fuga", "hoge", from_port=>2, to_port=>0 ); $g->add_node( "foo", shape=>'record', label=>"foo|{{r01|r02|r03}|{r11|r12}|{r21}}"); $g->as_png("test.png");
"shape => record" するときのポイントとか注意点とか。
- label は "{}" でくくると縦/横が入れ替わる。"{}"が入れ子になっている場合は、順に縦書きになったり横書きになったりする。
- add_edge method で port を使用するときは from_port/to_port で指定する。ただし、"port" というオフセットがついていて、"from_port => XX" とすると、
というポートを指定したことになる。
まあ、pod に書いてあるのだけれども。忘れそうなので。