graphvizとは
テキスト記述(dot言語)で関連図を生成できる凄いツール。
サイト
配布元 http://www.graphviz.org/
定番チュートリアル http://homepage3.nifty.com/kaku-chan/graphviz/
やりたかったこと
- とあるDBの職業一覧を階層化して見たかった。
- 件数は7000件くらい
ハマったこと
でかい関連図はpng出力とかjpeg出力は難しい
carino-rendererを使うと図形が潰れて出力されてしまった。
C:\>dot -Tpng test.txt -o c:\temp\sample.png
dot: graph is too large for cairo-renderer bitmaps. Scaling by 0.0341323 to fit
C:\>
【対応方法】
png出力とかjpeg出力を諦める。svg形式なら大きくても大丈夫。
でかい関連図を出力すると見難い(醜い)
1つの階層に30項目ほどぶら下がるような図ができあがった。縦は収まるのに横が延々とスクロールが続いてしまう形に。
【対応方法】
階層図・グラフの表記方向を上→下(初期設定)から左→右(dot言語で"graph [rankdir = LR];"を追加)に変更。
でかい関連図を出力すると線が重なってしまう
階層の項目と 階層と階層をつなぐ線がぶつかってしまった。このままだと線を追いかけづらく読みにくい。
【対応方法】
階層の感覚を広げる。dot言語で”ranksep=10;”を追加。
全体的に幅広くなってしまったが、読みやすくなった。
最後に
テキストから関連図が作れるGraphviz、面白いです。大量のデータの関連性をみるとか、上下関係を調べるようなときに簡単に使える便利なツール。
今回使用したデータ
githubに登録しました。
使い方
C:\>dot -Tsvg test.txt > c:\temp\work.svg
表示方法
work.svgが生成されるので、Internet Exploereなどで表示してください。