使用ruby-graphviz,我创建了一个如下所示的图形(添加了边框以强调渲染边界):
我真正想要的是A和K在顶部排成一行(或左边,如果rankdir =“LR”)。所以我添加了一个不可见的节点(称之为X),并添加了从X到A和K的不可见边。这就是我得到的:
X,XA和XK没有标签,样式设置为“invis”。 X的高度,宽度和边距设置为0,fixedsize设置为true。 XA和XK的minlen,len和penwidth设置为0。
但顶部还有空的空间。有没有办法摆脱它,事后没有裁剪?
答案 0 :(得分:4)
您不需要不可见的节点来实现此目的。
这是强制两个节点具有相同排名的点语法:
{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"]
}