一、问题描述
画二叉树的时候,总是无法对齐圆点得到对称的节点。例如:
graph test {
graph [dpi=80]
node [shape=circle];
1 -- 2, 3;
2 -- 4, 5 [color=red,penwidth=3.0];
3 -- 6, 7 [color=red,penwidth=3.0];
4 -- 8;
}
画出来的效果:
红色标出来的4个线条,长度不一样,子节点看起来不对称,就导致整个二叉树看起来也不够美观。
二、解决方案
可以在子节点中加一个中间节点,把线条的weight
设置成10,然后隐藏中间的节点和连线:
graph bin_tree {
node [shape=circle];
1 -- 2, 3;
2 -- 4;
// 隐藏中间节点的连线
2 -- m2 [weight=10 style="dashed"];
2 -- 5;
3 -- 6;
// 隐藏中间节点的连线
3 -- m3 [weight=10 style="dashed"];
3 -- 7;
4 -- 8;
// 隐藏中间节点
m2, m3 [label="" style="dashed"]
}
效果:
weight属性的作用是设置线条的权重,权重越大,线条越垂直。
如果希望完全隐藏中间节点,只要把对应节点和线条的属性设置为invis
即可:
style="dashed" -> style="invis"
此处评论已关闭