如何让不可见的节点在graphviz中占据space?
How to make invisible nodes occupy space in graphviz?
我想使用 graphviz 绘制二叉树,重要的是节点的左侧 child 出现在右侧 child 的左侧 (duh)。如果没有左边的child,我想要一个左边空的space,视觉上清楚右边的child就是右边的child。如果没有右边的child我也想这样做(右边应该是空的space)。
例如,我想要这样的东西:
A A
\ instead of |
B B
我可以通过使用 ordering = "out" 确保 Graphviz 将左边 child 放在右边之前,但是如果没有左边 child,那么右边 [=22] =] 可能会出现在 parent 的正下方。
如果我在缺少 child 的地方添加虚拟节点,我会得到正确的布局,但虚拟节点会出现在图片上(我不想要它们)。我尝试将 style = "invis" 用于连接到它们的虚拟节点和边缘,但是对于 graphviz 来说,它们就好像不存在一样。我怎样才能解决这个问题?
迟到总比不到好...
您可能将虚拟节点留空了 (""
)。如果你给它一个合理大小的标签,它工作正常:
graph Test
{
node[ shape = plaintext ];
C [ label = "C", style = invis ];
A -- B;
A -- C [ style = invis ];
}
证明 MWE 节省时间和精力的好例子...
如果你使用两个填充的不可见节点会更好,所以你想看到的节点肯定会留在旁边,而不是直接在它的祖先下面。
我想使用 graphviz 绘制二叉树,重要的是节点的左侧 child 出现在右侧 child 的左侧 (duh)。如果没有左边的child,我想要一个左边空的space,视觉上清楚右边的child就是右边的child。如果没有右边的child我也想这样做(右边应该是空的space)。
例如,我想要这样的东西:
A A
\ instead of |
B B
我可以通过使用 ordering = "out" 确保 Graphviz 将左边 child 放在右边之前,但是如果没有左边 child,那么右边 [=22] =] 可能会出现在 parent 的正下方。
如果我在缺少 child 的地方添加虚拟节点,我会得到正确的布局,但虚拟节点会出现在图片上(我不想要它们)。我尝试将 style = "invis" 用于连接到它们的虚拟节点和边缘,但是对于 graphviz 来说,它们就好像不存在一样。我怎样才能解决这个问题?
迟到总比不到好...
您可能将虚拟节点留空了 (""
)。如果你给它一个合理大小的标签,它工作正常:
graph Test
{
node[ shape = plaintext ];
C [ label = "C", style = invis ];
A -- B;
A -- C [ style = invis ];
}
证明 MWE 节省时间和精力的好例子...
如果你使用两个填充的不可见节点会更好,所以你想看到的节点肯定会留在旁边,而不是直接在它的祖先下面。