DOT言語について調べました。
DOT言語 – Wikipedia
初歩的なことだけをまとめてみます。
なお描画にはGoogleAPIを使っています。
次のようにするとaとbを結び付けるグラフが描ける。aやbをノードという。線をエッジという。
graph{a--b;}

次のようにするとノードを矢印で結び付ける。graphでなくdigraphである点に注意。
digraph{a->b;}

ノードはいくつも繋げられる。
graph{a--b--c--d;}

分岐させることもできる。
graph{a--b;a--c;a--d;}
これは次のように書いてもよい。
graph{
a--b;
a--c;
a--d;
}
a--b;
a--c;
a--d;
}

次のようにするとaにxというラベルを付けて表示を変えられる。
graph{
a[label="x"]
}
a[label="x"]
}

次のようにするとノードの形を変えられる。デフォルトはellipseである。
graph{
ellipse[shape="ellipse"];
box[shape="box"];
circle[shape="circle"];
record[shape="record"];
plaintext[shape="plaintext"];
point[shape="point"];
}
ellipse[shape="ellipse"];
box[shape="box"];
circle[shape="circle"];
record[shape="record"];
plaintext[shape="plaintext"];
point[shape="point"];
}

次のようにするとノードの輪郭の色を変えられる。
graph{
blue[color="blue"];
red[color="red"];
}
blue[color="blue"];
red[color="red"];
}

次のようにするとノードを塗りつぶす。
graph{
yellow[style="filled",color="yellow"];
}
yellow[style="filled",color="yellow"];
}

上の例からも分かるが、ラベル、形、色を同時に指定することもできる。
graph{
a[label="hello",shape="box",color="green"];
}
a[label="hello",shape="box",color="green"];
}

次のようにするとエッジにラベルが付けられる。
graph{
dog--cat[label="animal"];
}
dog--cat[label="animal"];
}

次のようにするとエッジが点線になる。
graph{
a--b[style="dotted"];
}
a--b[style="dotted"];
}

「digraph」を使い、次のようにするとエッジの向きが付き、赤色になる。
digraph{
a->b[color="red"];
}
a->b[color="red"];
}

次のようにするとノードのランクが同じになる。
digraph{
a->b;
{rank=same;a;b}
}
a->b;
{rank=same;a;b}
}

「digraph」を使っても、次のようにするとエッジの向きがなくなる。
digraph{
a->b[dir="none"];
}
a->b[dir="none"];
}



コメント
[…] 試しにDOT言語の文法をEBNFで記述して図を描いてみました。 PNGで出力することができますが、ここではXHTMLで出力してみました。図が埋め込まれて一つのファイルで出力されます。 […]