graphviz画二叉树对齐的小技巧

马谦马谦马谦 数据结构和算法评论947字数 384阅读1分16秒阅读模式

一、问题描述

画二叉树的时候,总是无法对齐圆点得到对称的节点。例如:

画出来的效果:

graphviz画二叉树对齐的小技巧-图片1

红色标出来的4个线条,长度不一样,子节点看起来不对称,就导致整个二叉树看起来也不够美观。

二、解决方案

可以在子节点中加一个中间节点,把线条的weight设置成10,然后隐藏中间的节点和连线:

效果:

graphviz画二叉树对齐的小技巧-图片2

weight属性的作用是设置线条的权重,权重越大,线条越垂直。

如果希望完全隐藏中间节点,只要把对应节点和线条的属性设置为invis即可:

三、参考

Enforcing horizontal node ordering in a .dot tree

How to get balanced diagrams from graphviz?

 
马谦马谦马谦
  • 本文由 马谦马谦马谦 发表于 2020年2月7日23:57:52
  • 转载请务必保留本文链接:https://www.dyxmq.cn/program/algorithms/draw-a-balanced-binary-tree-in-graphviz.html
graphviz设置分辨率 程序员

graphviz设置分辨率

默认情况下的,通过dot命令导出的图片分辨率很低。在高分辨率的显示器下看,图片很小,放大了也很模糊。修改分辨率的办法: digrapvh G { graph [dpi=300] } 修改后的效果: 修...
graphviz子图的用法 程序员

graphviz子图的用法

一、subgraph语法 子图的使用方法: subgraph cluster* { // xxxx } 子图的语法和其他语法也是一样的,一个千万要注意的地方是子图的命名必须以cluster开头。 例如...
graphviz的基本用法 程序员

graphviz的基本用法

一、基本用法 画一个简单的二叉树: digraph bin_tree { 1->2; 1->3; } 图形: 二、设置形状 上面的1/2/3都是一个node,通常被称为节点,默认情况下节点...
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定

拖动滑块以完成验证