使用ruby-graphviz,我创建了一个看起来像这样的图(添加了边框以强调渲染边界):

我真正想要的是A和K在顶部一起排列(或者,如果rankdir =“LR”,则在左边)。因此,我添加了一个不可见节点(称为X),并添加了从X到A和K的不可见边。这就是我得到的结果:

X,XA和XK没有标签,并且样式设置为“invis”。
X的高度,宽度和边距设置为0,fixedsize设置为true。
XA和XK的minlen,len和penwidth设置为0。

但是顶部仍然有空白空间。有没有什么办法可以摆脱它,事实发生后就不播种了吗?

最佳答案

您不需要隐形节点即可实现此目的。

这是强制两个节点具有相同等级的点语法:

{rank=same; A; K;}

这称为subgraph

我不知道ruby-graphviz,我不确定如何创建子图-但是有一个example on github:
c2 = g.subgraph { |c|
  c[:rank => "same"]
  c.mysite[:label => "\nexample.com\n ", :shape => "component", :fontname => "Arial"]
  c.dotgraph[:label => "\ndotgraph.net\n ", :shape => "component", :fontname => "Arial"]
}

关于graphviz - 强制两个节点在Graphviz中占据相同的排名?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7525934/

10-12 19:55