2

この図を生成するために Graphviz を使用しています。 私が得ているもの

出力が最適ではありません。XZ 線は不必要に XY 線と交差します。Y は X より上にあると思います。doco から多くのオプションを試しましたが、役に立ちませんでした。これは私が期待している種類の出力です: 私が欲しいもの

Graphviz でより最適化された図を作成するにはどうすればよいですか?

注: 同様の図の生成を自動化したいので、上記のシナリオに固有のソリューション (例: X0 -> Y1、Y11 -> X03 などからの見えないエッジ) は役に立ちません。次のようなものを一般的に信頼できる方法を探しています。

  • AXB は直線になります。
  • Z と相互作用しない場合、Y は AXB より上になります。
  • X->Y->X によって、X ノード間に不必要に大きなギャップが生じることはありません。

ドット ファイルの内容は次のとおりです。

digraph G {
  rankdir=LR

  subgraph cluster_x {
    node [style=filled,color=green]
    "X.0" -> "X.0.1" -> "X.0.2" -> "X.0.3" -> "X.0.4"
  }

  subgraph cluster_y {
    node [style=filled,color=lightblue]
    "Y.1" -> "Y.1.1"
  }

  subgraph cluster_z {
    node [style=filled,color=crimson]
    "Z.1" -> "Z.1.1"
    "Z.2"
  }

  A -> "X.0"
  "X.0.1" -> "Y.1"
  "X.0.1" -> "Z.2"
  "X.0.2" -> "Z.1"
  "Y.1.1" -> "X.0.2"
  "Z.1.1" -> "X.0.4"
  "Z.2" -> "Z.1.1"
  "X.0.4" -> B
}
4

1 に答える 1