我想使用 graphviz 绘制二叉树,并且节点的左 child 出现在右 child 的左侧(duh)很重要。如果没有左 child ,我希望左边有一个空白空间,以便在视觉上清楚地表明右 child 是右 child 。如果没有右 child (右侧应该有一个空白区域),我也想这样做。
例如,我想要这样的东西:
A A
\ instead of |
B B
我可以确保 Graphviz 使用 ordering = "out"将左 child 放在右 child 之前,但是如果没有左 child ,那么右 child 可能会出现在其 parent 的正下方。
如果我在缺少 child 的地方添加虚拟节点,我会得到正确的布局,但是虚拟节点会出现在图片上(我不想要它们)。我尝试将 style = "invis"用于连接到它们的虚拟节点和边,但就好像它们不存在于graphviz一样。我怎样才能解决这个问题?
最佳答案
迟到总比不到好...
您可能将虚拟节点留空( ""
)。如果你给它一个合理大小的标签,它工作正常:
graph Test
{
node[ shape = plaintext ];
C [ label = "C", style = invis ];
A -- B;
A -- C [ style = invis ];
}
一个很好的例子来证明 MWE 可以节省时间和精力......
关于tree - 如何让隐形节点在graphviz中占据空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31968116/