如何使不可见节点占用graphviz中的空间?

Fer*_*ndo 8 tree drawing binary-tree graphviz

我想使用graphviz绘制二叉树,并且重要的是节点的左子节点出现在右子节点的左侧(duh).如果没有留下的孩子,我想在左边留一个空的空间,以使视觉上清楚正确的孩子是正确的孩子.如果没有合适的孩子,我想做同样的事情(在右边应该有一个空的空间).

例如,我想要类似的东西:

A                     A
  \     instead of    |
    B                 B
Run Code Online (Sandbox Code Playgroud)

我可以确保Graphviz将左侧子项放在右侧,使用ordering ="out",但如果没有左侧子项,则右侧子项可能出现在其父项下方.

如果我添加了一个缺少子节点的虚节点,我得到了正确的布局,但虚拟节点就在图片上(我不想要它们).我尝试使用style ="invis"作为虚拟节点和连接它们的边缘,但是就好像它们不存在于graphviz中一样.我怎样才能解决这个问题?

vae*_*hen 10

迟到总比不到好...

您可能将虚拟节点留空("").如果你给它一个合理大小的标签,它可以正常工作:

graph Test 
{
    node[ shape = plaintext ];

    C [ label = "C", style = invis ];

    A -- B;
    A -- C [ style = invis ]; 
}
Run Code Online (Sandbox Code Playgroud)

一个很好的例子来证明MWE可以节省时间和精力......

在此输入图像描述