Graphvizで凡例付きパッケージ図

Graphvizで凡例付きパッケージ図を書く。

Graphvizで凡例付きパッケージ図

digraph sample {
  graph [fontname = "monospace", fontsize = 10];
  node  [fontname = "monospace", fontsize = 10];
  edge  [fontname = "monospace", fontsize = 10];

  // node
  node    [shape = tab];
  control [label = "コントロール"];
  domain  [label = "ドメイン"];
  GUI;

  // edge
  edge [style = dashed, arrowhead = vee];
  control -> GUI;
  control -> domain;

  // rank
  {rank = same; GUI; domain}

  // legend
  subgraph cluster_legend {
    label = "凡例";

    // node
    node        [shape = tab];
    package1_ex [label = "パッケージ1"];
    package2_ex [label = "パッケージ2"];

    // edge
    edge                       [style = dashed, arrowhead = vee];
    package1_ex -> package2_ex [label = "依存"];
  }
}