4

我在graphviz中绘制了一个二分图,我希望它有两列由直线连接的节点(以匹配其他地方使用的样式)。我基本上可以得到我想要的东西(见图),但是列太靠近了,这使得边缘不必要地难以遵循。

我试图在前两个节点之间添加一个非常低权重的连接,希望它将两个子图分开,但这不起作用(并且经常会弄乱布局的其余部分)。有没有办法将右侧的节点列进一步向右移动。

这是一个显示我看到的问题的示例

两个子图靠得太近的有向图

这是我用来生成此图的代码

graph G {
      splines=false;
      node[shape=circle, style=filled]
      subgraph cluster_1 {
      subgraph cluster_1r {
         a12 [label="a",fillcolor=lightgrey]
         b12 [label="b",fillcolor=lightgrey]
         c12 [label="c",fillcolor=lightgrey]
         d12 [label="d",fillcolor=lightgrey]
         e12 [label="e",fillcolor=lightgrey]
         a12--b12--c12--d12--e12 [style=invis]
         }
      subgraph cluster_1l {
         a11 [label="a",fillcolor=white]
         b11 [label="b",fillcolor=white]
         c11 [label="c",fillcolor=white]
         d11 [label="d",fillcolor=white]
         e11 [label="e",fillcolor=white]
         a11--b11--c11--d11--e11 [style=invis]
         }
         c11--a12 [constraint=false]
         c11--b12 [constraint=false]
         d11--b12 [constraint=false]
         e11--a12 [constraint=false]
         e11--b12 [constraint=false]
     }
}
4

1 回答 1

5

在两列之间添加一个不可见的节点可以正常工作。基本上我添加了这个

subgraph cluster_1m {
   color=invis;          
   a12m [style=invisible]
   }

在两个子图之间。虽然这感觉很粗糙,所以任何更优雅的解决方案都会受到欢迎。

于 2013-01-04T18:27:10.347 回答