Graphviz中簇之间的直边

Mot*_*tti 23 graphviz

我试图在Graphviz中的簇之间有一个边缘,其中边缘不影响排名.

看起来很好:

digraph {
  subgraph clusterX {
    A    
    B
  }

  subgraph clusterY {
    C
    D
  } 

  A -> B
  B -> C [constraint=false]
  C -> D
}
Run Code Online (Sandbox Code Playgroud)

然而,当我向C -> D边缘添加标签时,B -> C边缘试图绕过所述标签(看起来很丑陋).

digraph {
  subgraph clusterX {
    A    
    B
  }

  subgraph clusterY {
    C
    D
  } 

  A -> B
  B -> C [constraint=false]
  C -> D [label=yadda]
}
Run Code Online (Sandbox Code Playgroud)

任何想法我怎么能保持从边缘BC直?

mar*_*pet 35

实现此目的的最简单方法是添加splines=false到点文件 - 这会强制边缘的渲染为直线:

digraph {
 splines=false;
 subgraph clusterX {
    A;
    B;
 }

 subgraph clusterY {
    C;
    D;
 } 

 A -> B;
 B -> C [constraint=false];
 C -> D [label=yadda];
}
Run Code Online (Sandbox Code Playgroud)

输出:

graphviz输出

  • 我得到的边缘不是从第一个节点直接到第二个节点的边缘,它仍然是弯曲的,但是折射的而不是平滑的:/ (2认同)