blog.monophile.net

コンピュータのこととかのメモ。

Takaaki Yamamoto

東京工業大学において計算機科学と応用数学を学び、 情報科学芸術大学院大学[IAMAS] においてメディア表現を専攻し修了。 現在は digitiminimi Inc. において、インフラエンジニアとして生計をたててている。

work

各種システム構築と管理を承ります。

Cloud PlatformOpenstack, GCP, AWS, Azure, ...
Openstackkeystone, glance, cinder, swift, neutron, nova, ...
VirtualizationQEMU+KVM, LXD/LXC, Docker, ...
OSDebian GNU/Linux, Ubuntu, CentOS, ...
NetworksIPSec, L2TP, VXLAN, WirelessAP, ...
WebAppsWordPress, GitLab, Redmine, ...
Configuration ManagementAnsible, Terraform, ...
MonitoringNagios, Munin, ...

posts

いきさつ

Graphvizというグラフ描画専用のツールがあるので使ってみることに。

graphvizのインストール

$ sudo apt-get install graphviz

データの変換

空手クラブのデータkarate.gmlを使う。 下記サイトから入手できる。

karate.gmlはgmlという形式で書かれているが、 GraphvizではDOTという形式のデータを使うのでgmlからDOTへ変換しなければならない。 以下のコマンドで変換することができる。

$ gml2gv -o karate.dot karate.gml

↑の出力であるkarate.dotは↓。

graph "" {
	graph [Creator="Mark Newman on Fri Jul 21 12:39:27 2006"];
	2 -- 1;
	3 -- 1;
	3 -- 2;
	4 -- 1;
	4 -- 2;
	4 -- 3;
	5 -- 1;
	6 -- 1;
	7 -- 1;
	7 -- 5;
	7 -- 6;
	8 -- 1;
	8 -- 2;
	8 -- 3;
	8 -- 4;
	9 -- 1;
	9 -- 3;
	10 -- 3;
	11 -- 1;
	11 -- 5;
	11 -- 6;
	12 -- 1;
	13 -- 1;
	13 -- 4;
	14 -- 1;
	14 -- 2;
	14 -- 3;
	14 -- 4;
	17 -- 6;
	17 -- 7;
	18 -- 1;
	18 -- 2;
	20 -- 1;
	20 -- 2;
	22 -- 1;
	22 -- 2;
	26 -- 24;
	26 -- 25;
	28 -- 3;
	28 -- 24;
	28 -- 25;
	29 -- 3;
	30 -- 24;
	30 -- 27;
	31 -- 2;
	31 -- 9;
	32 -- 1;
	32 -- 25;
	32 -- 26;
	32 -- 29;
	33 -- 3;
	33 -- 9;
	33 -- 15;
	33 -- 16;
	33 -- 19;
	33 -- 21;
	33 -- 23;
	33 -- 24;
	33 -- 30;
	33 -- 31;
	33 -- 32;
	34 -- 9;
	34 -- 10;
	34 -- 14;
	34 -- 15;
	34 -- 16;
	34 -- 19;
	34 -- 20;
	34 -- 21;
	34 -- 23;
	34 -- 24;
	34 -- 27;
	34 -- 28;
	34 -- 29;
	34 -- 30;
	34 -- 31;
	34 -- 32;
	34 -- 33;
}

グラフの生成

$ neato karate.dot -Tpng -oneato.png

↑の出力は↓。

karate.dotの変更

上記の画像、ノードが重なりすぎて視認性が悪いため、下記のように変更する。

graph  {
 overlap=false;
 splines=true;
 graph [Creator="Mark Newman on Fri Jul 21 12:39:27 2006"];
 2 -- 1;
 3 -- 1;
(後は同じ)

↑の出力は↓。