Help us understand the problem. What is going on with this article?

噂のGraphvizを使ってみる

More than 3 years have passed since last update.

概要

(筆者の中で)最近話題の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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away