如何强制所有节点在graphviz的同一列?(How to force all nodes in t

2019-07-19 14:40发布

我想使用的graphviz来模拟一定的流量,我无法弄清楚如何在下图模型共享相同的水平中心

digraph exmp {
   A -> B -> C -> D
   C -> E [constraint=false]
   A -> C [style="dotted", constraint=false]
   A -> D [style="dotted",  constraint=false]
   B -> D [constraint=false]
   D -> A [style="dashed", constraint=false]
   C -> A [style="dashed", constraint=false]


   subgraph cluster_hackToSinkIt { E -> F }
   { rank="sink" E F }
}

这导致下面的图:

我的问题是,我怎么能得到对E - > F到下d这样的定位是谎言在同一列?

Answer 1:

至少为2007年5月 ,你不能强迫“列” 本身 ,而是你可以申请权重的边缘,这应有助于力对齐。 但实际上,在这种情况下,如果你只是从d添加一个不可见的边缘E,你有垂直对齐。

digraph exmp {
    A -> B -> C -> D
    C -> E [constraint=false]
    A -> C [style="dotted", constraint=false]
    A -> D [style="dotted",  constraint=false]
    B -> D [constraint=false]
    D -> A [style="dashed", constraint=false]
    C -> A [style="dashed", constraint=false]
    D -> E [style="invis"] // <---- important new line


    subgraph cluster_hackToSinkIt { E -> F }
    { rank="sink" E F }
}

我不知道有任何办法强迫边缘一侧或另一侧。



文章来源: How to force all nodes in the same column in graphviz?