【问题标题】:How to get different ranksep for certain ranks如何为某些等级获得不同的等级间隔
【发布时间】:2013-09-22 11:39:39
【问题描述】:
我希望我的底部节点的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
}
}
结果:
【问题讨论】:
标签:
visualization
graphviz
dot
【解决方案1】:
ranksep 是一个图属性(不是子图),不能用于在点中改变同一图中等级之间的距离。
【讨论】:
-
-
您应该能够通过插入不可见节点(例如节点 4 上方的垂直列)来添加不可见等级。或者您可以尝试将一个不可见节点添加到同一等级并应用一些边距(可能使用shape=none, label=" ", margin=1)。或者您使用gvpr 更改最低节点的位置并使用neato 渲染结果图。
【解决方案2】:
您可以指定边的最小长度。来自 dotguide :“minlen 定义了头部和尾部等级之间的最小差异”。
请注意,您可能必须同时调整 rankep(全局)和 minlen 以调整图表的方面。
graph G{
ranksep=0.1; // small separation
{
1 -- 2 [ minlen =4]
1 -- 3 [ minlen =4]
}
{
2 -- 4
2 -- 5
3 -- 6
3 -- 7
}
}
结果: