kanizaのブログ

コンピュータ、ソフトウェア、映画、音楽関連や家族のことなど、思いついたことを書きます。

Graphviz

Graphvizというソフトがある。DOTというテキスト形式でグラフを定義すると、レイアウトして絵にしてくれる。

たとえば、

digraph g {
  you -> me;
}

とすると、

graphviz1

にしてくれる。

横にしたかったら

digraph g {
  rankdir=LR;
  you -> me;
}

とすればいい。

graphviz2

もう1つ要素を追加すると

digraph g {
  rankdir=LR;
  you -> me -> her;
}

graphviz3

となる。

もうちょっと複雑な例。

digraph g {
  rankdir=LR;
  you -> me -> her;
  him -> me;
}

graphviz4

各要素の形や色もいろいろ指定できる。

digraph g {
  rankdir=LR;
  me [shape=box, color=blue, style=filled];
  her [style=dotted];
  you -> me -> her [style=dotted,arrowhead=empty];
  him [color=green; style=filled];
  him -> me;
}

graphviz5

別のレイアウトアルゴリズムを適用した例。

graphviz6

GraphvizMacでもWindowsでもUNIX系OSでも動く。出力形式にはPNGJPEGSVGやPostScriptなんかを指定できる。

たのしいソフトだ。