是否有可能在graphviz中将子图进一步分开

时间:2013-01-04 12:49:31

标签: graphviz dot bipartite graph-drawing

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

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

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

digraph with two subgraphs too close together

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

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]
     }
}

1 个答案:

答案 0 :(得分:3)

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

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

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

相关问题