GraphvizはAT&Tが開発しているオープンソースのソフトです。
ソースファイルからグラフを作成します。
以下のようなコードを作成して、
digraph sample {
n_node1 [ shape = Mrecord, label = "Hello|こんにちわ" ];
n_node2 [ shape = Mrecord, label = "World|世界" ];
n_node1 -> n_node2;
}$ dot -Tjpg sample.dot -o sample.jpgを実行すると(ソースファイルはsample.dot)
のようなグラフが作成されます。
公式サイトは → http://www.graphviz.org/です。
下のようなソースを作ってsample2.dotという名前で保存し、
// sample2.dot
// dot -Tsvg sample2.dot -o sample2.svg
digraph test {
a -> b;
a -> c;
}$ dot -Tsvg sample2.dot -o sample2.svgと、するとsample2.svgというsvg形式のファイルが作成されます。(私はsvgかpdfを使うことが多いです)。
jpegで保存したい場合は -Tsvg を -Tjpeg やら -Tjpg とか -Tjpe にすると jpegで出力されます。(ちゃんと -o sample2.jpg とかにしておかないと拡張子 svg の jpegファイルが作成されます ^^;)
出力はいろいろな形式に対応しています。自分が使っているgraphvizでどんな形式で出力できるかは dot -T? で見ることができます。(?なんてフォーマット知らん!と怒られますが…公式ページにdot -T?って入力しろと公式ページに書いてました ^^;)
上記のソースだと↓のようなグラフが作成されます。(jpgで出力)
ソースファイルの上2行がコメントです。 "//" が出現した位置から行末までがコメントになります。
グラフのa、b、cとそれを囲む線がノードです。ノードの形はたくさんあってこのページの最初のグラフの用に複数のラベル(ノード内の文字列)を一つのノードに入れたりできるレコードというものも使用できます。(詳しい解説はまた追加します)
グラフでノードとノードを継いでいる矢印をエッジと言います。これもいろいろと線種を色を変更できます。
私の開発環境はLinux、Fedora 10で基本的に文字コードはUTF-8です。
graphvizはUTF-8に対応しているので漢字とかも何の苦もなく使えますが文字コードにEUCやSHIFT-JISを使っている方はもしかすると文字化けしたりエラーになったりするかもしれません。(実際にテストしていないので解らないです m(--)m)
結果が怪しいときは文字コードをチェックしてみてください。
恥ずかしながら → Graphviz作品集