to top page
2012-12-30
DOT言語の練習 [1] 全体の描画
次の DOT スクリプトを修正しながら試してみる。

digraph Tree {
    graph [rankdir = LR, size = "4"];
    家康 -> 信康;
    家康 -> 秀忠;
    秀忠 -> 千姫;
    秀忠 -> 家光;
    家光 -> 家綱;
    家綱 -> 綱吉;
    家光 -> 綱吉;
    家康 -> 義直;
    義直 -> 尾張家;
    家康 -> 頼宣;
    頼宣 -> 紀州家;
    家康 -> 頼房;
    頼房 -> 水戸家;
}

属性: rankdirsize
記述例: graph [rankdir = LR, size = "4"];
rankdir はグラフの方向を示す。値は、TB(下向き、デフォルト)、BT(上向き)、LR(右向き)、RL(左向き)のいずれか。
size は表示領域のサイズで、単位はインチ。本来は「size = "4, 6"」など幅と高さを指定するが、dot コマンドが不要な領域を適当に切り縮めてしまう。ここでは幅だけ指定した。また、fontsize で文字の大きさを指定できるが、これも dot の判断が優先される。
上のプログラムからできる図は次の通り。



属性: bgcolor
記述例: graph [bgcolor = "#ffff00"];
bgcolor は背景色を示す。値は RGB の場合 # に続く6ケタの16進数で指定する。ほかに RGBA、HSV の記法もある。また、red、yellow などの色名で指定することもできる(色名一覧 - Color Names)。



属性: pad
記述例: graph [pad = 1];
pad はグラフ周囲の余白を示す。単位はインチ。
pad を指定しなくても、見苦しくない最小限の余白は自動的に付けられる。



キーワード: subgraph
記述例: subgraph cluster0 {
    label = 御三家;
    color = orange;
    bgcolor = orange;
    尾張家;
    紀州家;
    水戸家;
}
キーワード subgraph を使ってグラフの中にグラフを作ることができる。
このグラフ内グラフ(サブグラフ)には、外側のグラフと別にラベルや枠線、背景色を設定できる。
サブグラフの名前は、通常「cluster」ではじまる名前とする。それ以外の名前だと、ラベルや色の指定が無視される。