GraphViz を習得するのはそれほど難しくありません。この種のグラフでは、基本的な言語は非常に単純です。そのpdfから最初の例を(多かれ少なかれ)複製するのに少し時間がかかりました.それについての良いところは、それが単純であるため、他のデータソースから手続き的にグラフを生成するのが非常に簡単であることです.
Digraph fig1 {
rankdir = LR; //order things from left to right
//define alpha and beta as existing
α [shape=circle];
β [shape=circle];
//not strictly nescessary but helps if you want to
//assign them specific shapes or colours
subgraph cluster_M //names beginning with "cluster" get a box drawn, an odd hack
{
label = "M"
θ [shape=circle];
subgraph cluster_N
{
label = "N"
z [shape=circle];
w [shape=circle, style=filled]
z->w; //quite literally z points at w
}
θ -> z;
}
α -> θ;
β -> w;
}
dot -Tpng input.txt -o graph.png でコンパイルすると、このようになります。バブルの下にラベルを配置することが重要な場合は、いくつかの追加の行でそれを行うことができます。同様に、ノードの特定の配置が重要な場合は、それも調整できます。実際、画像形式を指定しない場合、ドットのデフォルトの動作は、各要素の位置の座標を含む入力ファイルのバージョンを出力することです。