噂のGraphvizを使ってみる

  • 39
    いいね
  • 1
    コメント
この記事は最終更新日から1年以上が経過しています。

概要

(筆者の中で)最近話題のGraphvizを使ってディレクトリ構造をグラフ化してみようと思います。このGraphvizですが、言語ではなく、 DOT言語というグラフ記述言語のスクリプト群のようです。Graphvizを使うと簡単に複雑なグラフが作れちゃいます。

Install

何はともあれ、まずはインストールしてみましょう。ここではHomebrewを使ってインストールしますが、各OS用のインストーラーを使ってもインストール出来ます。
$ brew install graphviz
インストーラーはコチラから:http://www.graphviz.org/Download.php

使い方

graphvizではdotファイルを使います。まずはvimなどのエディタで以下のように記述。

Sample.dot
// 1行コメント
/*
複数行のコメントの場合は/* */で囲む
*/
graph g{
    "Hello World"
    }

$ open Sample.dotとすると,こんな感じでプレビューが表示されます。qiita.out.jpg

(注意)dotファイルはWORDに関連付けされている場合があります。この場合の対処法は調べましたが筆者には見つけられませんでした(・_・;)
何か良い方法をご存じの方はコメントから教えていただけると幸いです。

dotファイルを書き出す

dotファイルを書き出すにはdotコマンドを使います。
$ dot -T <拡張子> Sample.dot -o Sample.out.<拡張子>
<拡張子>の部分には、変換したい拡張子を入れてください。変換できる拡張子は

  • pdf
  • png
  • jpg
  • svg

です。

線を引く

複数のノードを作成して、線や矢印で繋いでみます。

線で繋ぐ場合

言葉(単語)と言葉を、--で繋ぐと線を引く命令になります。

//線でつなげる
graph g{
    "地球" -- "日本" -- "北海道";
}

qiita.out.jpg

矢印で繋ぐ場合

//向きをつけるときはdigraph
digraph g{
    "地球" -> "日本" -> "北海道";
}

または

digraph g{
    "地球" -> "日本"
    "日本" -> "北海道"
}

qiita3.out.jpg

ノードの形とラベル

ノードの形の変更とラベル付けの仕方は以下のように記述すれば出来ます。

digraph g{
    //ノードの形変更

    //ノードを四角に変更
    "地球"[shape=box];
    //六角形に変更
    "日本"[shape=hexagon];
    //二重丸に変更
    "北海道"[shape=doublecircle];
    //ラベル付
    "地球" -> "日本"[label=国名];
    "日本" -> "北海道"[label=地方名];
}

まとめ

基本的な使い方を書きましたが、Graphvizはまだまだ色々なグラフが書けます。気になった方はGoogle先生に聞いてみてください。(笑)
最後に今回紹介した基本+αでサクッと作ったMacの階層構造のグラフ画像です。sample.out.jpg