試しに小倉百人一首の歌をツリー構造で書きだしてみた
Graphvizとは†
- データをグラフに変換してくれるソフト
- グラフ,とはいわゆる連結グラフとか有向グラフと呼ばれる類のことで,棒グラフや円グラフのことではない
- boostライブラリにも含まれてるので,C++のプログラムにも組み込み可能
グラフの書き方†
- dot言語でグラフを記述する
- Graphvizで処理する
dot言語の基本†
#geshi(dot,number){{
digraph sample {
A -> B -> C;
A[shape=circle,label="A"]
B[shape=box,label="B"]
C[shape=box,label="C"]
}
}}
digraph†
graph†
エラーなどなど†
Warning: xxxx.dot:xx: ambiguous "0x" splits into two names: "0" and "x"†
Graphviz のツールの種類†
- Graphvizのツールの種類には様々な種類がある。
- 描きたいグラフに応じて使い分けるべき
- dot:階層構造や、上限関係を記述するのに向いてるツール
- neato:ノード間のエッジをバネモデルに基づき配置する
- fdp:neato同様バネモデルで配置するが、力最小化でなく、エネルギー最小化にもとづき配置する
- sfdp:fdpのノード大量版で使用するべきツール
- twopi:同心円状に配置する。NTPのストラタムとか、DNSの階層構造を同心円状に書くのに向いてる。このツールだけは中心ノードを指定する必要がある
- circo:円状にノードを配置する。ベンゼン環やTNTみたいな科学記号において、輪っかを綺麗に描くためのツール
- ギャラリー¬e{graphviz-gallery:Gallery | Graphviz - Graph Visualization Software, 2013-02-08閲覧};
描画エンジン†
dot言語でレイアウトを崩したくない場合†
Graphvizの参考ページ†