y-matsui::weblog

電子楽器、音楽、コンピュータ、プログラミング、雑感。面倒くさいオヤジの独り言

ネットワークグラフ”Graphviz”

人と人の関係を表すのに、ネットワークグラフが便利だ
しかし、パワーポイントやワードのドロー機能でいちいち書いていくのも面倒だし、Visioだって買うと結構な値段がする。
そこで、Graphviz
これは賢い
参考記事がここにある
digraph graph01
{
 node [fontname="MS GOTHIC"];
 "あれ" [shape=box];
 "あれ" -> "これ" [label="1",fontcolor=blue];
 "これ" -> "それ" [label="2",fontcolor=blue];
 "それ" -> "それ" [label="3",fontcolor=blue];
}
なんていうテキストをUTF-8で保存して、
dot -Tgif -Kneato c:\tmp\test.dot -o c:\tmp\test.gif
なんていう感じでコマンドを実行すると

色んなレイアウト(dot、neato、dotty、lefty)、データフォーマット(jpeg,pngsvgなどなど)に出力してくれる。コマンドラインで動作するから、ノードデータをプログラムで書き出し、バッチ処理なんていう使い方がよさそうだ。
自分の場合は、これを何に使いたいのかというと、経営情報の可視化だ。基幹システムの受注データ、製造データを抜き出し、顧客、営業担当者、技術責任者、技術担当者をネットワークグラフで繋いで、お金の流れをノードで表現したい。
金額の大きさが接続線の太さ、矩形の大きさで表現できたら良い。さらに、顧客、営業、技術で矩形の色を変えて分かりやすくしたいと考えている。

■参考サイト
wikipedia Graphviz
Graphviz チュートリアル
 親切なチュートリアル
GraphViz日本語使用法
Graphviz 使いかた
GraphVizで日本語を使いたい
Python から Graphviz を使う
Use WinGraphviz in ASP
 ASPから使えるようにしちゃったらしい(未確認)
グラフが簡単に描ける―Graphvizの使い方
dot を使ったグラフ描画(PDF)