如何为特定排名获取不同的ranksep

8
我希望我的节点底部排名比其他部分的图形更小。如何做到这一点?我似乎找不到为不同子图单独设置ranksep的正确语法。
这不起作用-所有等级都被分开相同(大ranksep和小ranksep都被忽略):
graph G{
  {  ranksep=1.0; // big separation
     1 -- 2
     1 -- 3
  }
  {  ranksep=0.2;  // small separation
     2 -- 4
     2 -- 5
     3 -- 6
     3 -- 7
  }
}

Result:

ranksep

2个回答

6

ranksep 是一种图形属性(不是子图),不能用于在dot中改变同一图形中排之间的距离。


这真是个糟糕的事情。能用无形节点模拟吗? - latkin
你应该能够通过插入不可见节点(例如在节点4上方的垂直列)来添加一个不可见的等级。或者你可以尝试在同一等级上添加一个不可见节点,并应用一些边距(也许使用 shape=none, label=" ", margin=1)。或者你可以使用 gvpr 来改变最低节点的位置,并使用 neato 渲染生成的图形。 - marapet

3
您可以为边指定最小长度。根据dotguide的描述:“minlen定义头部和尾部之间排名的最小差异”。请注意,您可能需要调整ranksep(全局)和minlen来调整图形的外观。
graph G{
  ranksep=0.1;  // small separation
  {  
     1 -- 2 [ minlen =4]
     1 -- 3 [ minlen =4]
  }
  {  
     2 -- 4
     2 -- 5
     3 -- 6
     3 -- 7
  }
}

结果: 边缘最小长度

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接