graphviz - dot言語のテキストから画像を生成

graphviz

これを知ったきっかけはYAPC::Asia 2009のシックス・アパートフレームワークの発表。たしかmoduleの関連図のスライドで、graphvizで描いたと言っていた。
(http://www.slideshare.net/comewalk/ss-1994397)

graphvizはdot言語で書かれたテキストから、pnggifなどを生成するツールフローチャートとか書くときに便利そう。いちいちvisio使うの嫌なんす。マルチバイト文字も扱えるぽいし。素晴らしい。

なんで思い出したかっていうと、前のエントリに書いたサイトでasのpeerを見ていたから。どこかで見たことある画像だな〜と思っててgraphvizが頭に浮かんだ。例えばYahoo Japanのはこんなの。

install

aptかyumで。

# apt-get install graphviz

生成

$ dot -T png sample.dot -o sample.png

sample

無向グラフ
graph graphname {
  a -- b -- c;
  b -- d;
}
有向グラフ
digraph graphname {
  a -> b -> c;
  b -> d;
}
属性

[]で囲って指定。線、形、色、グラフの向きなどを指定。

digraph hoge {
  graph  [rankdir = LR];  // 右向きに
  a -> b [color = blue];  // aからbへの線を青色に
}