使用Dot绘制树形图时,如何按边定义顺序设置同层节点顺序?
让Dot按边的定义顺序排列同一层节点
要实现按边的定义顺序排列子节点,只需要给你的图(或者目标父节点)添加ordering=out属性即可。这个属性会告诉Dot渲染器,按照父节点输出边的顺序来排列子节点,而非默认的节点定义顺序。
修改后的全局生效代码如下:
digraph G { ordering=out; # 全局启用按输出边顺序排列子节点 node1 [label = 1]; node2 [label = 2]; node3 [label = 3]; node3 -> node2; node3 -> node1; }
如果只想让特定父节点(比如node3)的子节点按边顺序排列,也可以仅给该节点设置属性:
digraph G { node1 [label = 1]; node2 [label = 2]; node3 [label = 3, ordering=out]; # 仅对node3的子节点生效 node3 -> node2; node3 -> node1; }
这样渲染后,node2会出现在左侧,node1在右侧,完全匹配你边定义的顺序。
内容的提问来源于stack exchange,提问作者guanming Bao
相关产品推荐
相关产品推荐

