Graphviz覚え書き
Tech知っておくとたまに便利なツール、Graphvizに関するメモです。
インストール
Mac(homebrew)の場合はbrew install graphviz、など。
使い方
1.dot:
digraph graph1 {
1 -> 4 [label="3"]
1 -> 9 [label="1"]
2 -> 5 [label="4", style=dotted]
2 -> 6 [label="1"]
3 -> 7 [label="5"]
3 -> 10 [label="9"]
4 -> 7 [label="2"]
5 -> 6 [label="6", style=dotted]
5 -> 8 [label="5"]
6 -> 8 [label="3"]
7 -> 9 [label="5"]
8 -> 10 [label="8"]
}
画像生成:
$ dot -Tpng 1.dot -o 1.png
dotファイルの書き方
dotファイルの記述次第で、生成されるグラフ画像をいろいろカスタマイズできます。ここではよく使うものを紹介します。
ノード
- ノードに文字を入れる:
label="foo"
(シングルクオート不可)
エッジ
- エッジに文字を入れる:
label="foo"
(シングルクオート不可) - 無向エッジにする:
dir=none
- 点線にする:
style=dotted
Tips
レイアウトを変える
dotコマンドをneato, twopi, circoといったコマンドに換えると、ノードの配置が代わります。大きなグラフなどでdotコマンドだとぐちゃぐちゃになってしまう場合でも、別のアルゴリズムだとそれなりに見られるようになることもあります。
詳細はman dotを参照してください。