GraphViz の図はノードとエッジで構成されています。下の図を見てください。
上図の「黄門様ご一行」と書かれた八角形と「悪代官's」と書かれた長方形がノードです。また「この紋所が目に入らぬか!!」と書かれた矢印がエッジです。
GraphViz は以下のノードを描くことができます。
ノードの書き方は以下のように書きます。
node_ID [shape="形状", label="表示テキスト", ....];
例えば「黄門様ご一行」と書かれた最初の八角形の例であれば以下のように書きます。
n01 [shape=doubleoctagon, label="黄門様ご一行"];
ここで n01 というノード ID をつけていますが、これは後でノードとノードをエッジでつなげるときに使います。
ノード ID は別のノード ID とダブってはいけません。ノード ID はノードを区別するためのノード固有の ID になります。他のノードと被ると GraphViz はそれらのノードの区別ができなくなってしまいます。
ノードの形状には "doubleoctagon" を指定し、表示する文字列には "黄門様ご一行" を指定しています。
"黄門様ご一行" ノードのみのダイアグラムを描く場合は以下のようにします。
graph example { n01 [shape=doubleoctagon, label="黄門様ご一行"]; }
それでは実際にダイアグラム化してみましょう。上記ソースファイル名を "nodes0003.gv" とした場合、以下のように GraphViz を実行します。GraphViz の実行ファイル名は dot です。
dot -Tsvg nodes0003.gv -o nodes0003.svg
生成されるダイアグラムは下図のようになります。
もし描きたいノードが ellipse でエッジが不要な場合だと、もっと簡単にソースファイルを書くことができます。
graph example { "黄門様ご一行"; }
生成されるダイアグラムは下図のようになります。
ソースファイルで「黄門様ご一行」という文字列をダブルコーテーションでくくっていますが、この文字列にはスペースが含まれていないので実はダブルコーテーションも不要です。
ノードは背景色を変えたり文字色を変えたりもできます。その方法については後述します。