HOMEUP作品集

作品集 レコード

Graphvizに関して

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で出力)

graphviz 簡単な例

コメント

ソースファイルの上2行がコメントです。 "//" が出現した位置から行末までがコメントになります。

ノード

グラフのa、b、cとそれを囲む線がノードです。ノードの形はたくさんあってこのページの最初のグラフの用に複数のラベル(ノード内の文字列)を一つのノードに入れたりできるレコードというものも使用できます。(詳しい解説はまた追加します)

エッジ

グラフでノードとノードを継いでいる矢印をエッジと言います。これもいろいろと線種を色を変更できます。

注意事項

私の開発環境はLinux、Fedora 10で基本的に文字コードはUTF-8です。

graphvizはUTF-8に対応しているので漢字とかも何の苦もなく使えますが文字コードにEUCやSHIFT-JISを使っている方はもしかすると文字化けしたりエラーになったりするかもしれません。(実際にテストしていないので解らないです m(--)m)

結果が怪しいときは文字コードをチェックしてみてください。


恥ずかしながら → Graphviz作品集

HOMEUP作品集