to top page
2013-01-10
アスキーアートのグラフを作るツール graph-easy
graph-easy というツールを使うと、アスキーアートのグラフを簡単に作ることができる。
こちらを参考に試してみた。
- ditaa で簡単に作図する方法 « Stop Making Sense
- graph-easy - search.cpan.org

公式サイトの例をそのままやってみる。
まず、次のようなテキストファイルを作る。ここでは graph.txt という名前にした。
[ Bonn ] -- car --> [ Berlin ], [ Ulm ]

これを次のコマンドで処理すると
   $ graph-easy graph.txt --output=graph.ascii
次のようなアスキーアートのグラフ graph.ascii が出力される。

+--------+  car   +-----+
| Bonn | -----> | Ulm |
+--------+ +-----+
    |
    | car
    v
+--------+
| Berlin |
+--------+

graph-easy は ascii 形式のほかいくつもの形式の入出力に対応していて、たとえば次のようにすると、
   $ graph-easy graph.txt --output=graph.dot
次の DOT プログラム graph.dot が出力される。

digraph GRAPH_0 {

// Generated by Graph::Easy 0.71 at Thu Jan 10 09:27:59 2013

edge [ arrowhead=open ];
graph [ rankdir=LR ];
node [
fontsize=11,
fillcolor=white,
style=filled,
shape=box ];

Bonn -> Ulm [ color="#000000", fontcolor="#000000", label=car ]
Bonn -> Berlin [ color="#000000", fontcolor="#000000", label=car ]

}

ためしにこれを Graphviz の dot コマンド
   $ dot -Tpng graph.dot -ograph.png
で処理すると次の画像 graph.png ができる。



PNG の生成にはショートカットが用意されていて、上のように DOT 形式の中間ファイルを経由しなくても、たんに
   $ graph-easy graph.txt --png
とすれば、同じ画像が生成できる。

graph-easy は DOT プログラムを読んでアスキー形式に変えることもできる。
   $ graph-easy graph.dot --output=another.ascii
このコマンドで上の graph.dot を処理すると、上の graph.ascii とまったく同じ内容の another.ascii が出力される。