双曲树

双曲树()是一种信息可视化和图形绘制方法,其灵感来自双曲几何。

将分层数据显示为一棵树,由于每层的节点数量会呈指数级增长,因此会出现视觉上的混乱。对于一棵简单的二叉树来说,第 n 层的最大节点数是 2n,而分支较多的树的节点数增长得更快。因此,把树画成一个节点-链接图需要指数级的空间来显示。

解决上述问题的其中一种方法是使用双曲树,首先由Lamping等人提出。 双曲树采用双曲空间,其本质上比欧氏空间的“空间更大”。例如,在欧几里得空间中线性增加一个圆的半径,其周长会线性增加,而在双曲空间中同样的圆,其周长会呈指数级增加。利用这一特性,可以在双曲空间中以整洁的方式给树布局:把一个节点放在离其父节点足够远的地方,可以让该节点几乎拥有与其父节点相同的空间来布局自己的子节点。

通常利用双曲几何的庞加莱圆盘模型来展示双曲树,尽管也可以使用凯莱-克莱因模型。两者都是在一个单位圆盘中显示整个双曲平面,使整个树一次性可见。单位圆盘提供了一个平面的鱼眼透镜视图,更加强调焦点内的节点,而在靠近圆盘边界处可以显示更加远离焦点的节点。遍历双曲树需要对空间进行莫比乌斯变换,使新的节点成为焦点,并将层次结构的更高层次移出视野。

双曲树于1996年由施乐公司在美国申请了专利,但该专利已经过期。
参见

  • 双曲几何
  • 信息可视化
  • – 同样是圆形的,但使用线性几何。
  • 树 (数据结构)
  • 树 (图论)

参考文献
外部链接
*[https://github.com/glouwa/d3-hypertree d3-hypertree] – HTML5 Hyperbolic tree implementation, MIT licensed
*[https://hyperbolic-tree-of-life.github.io/ Hyperbolic Tree of life] – Open source tree of life visualisation using Open Tree of Life data set
*[http://ucjeps.berkeley.edu/map2.html The Green Tree of Life] – Tree of life – University of California at Berkeley and Jepson Herbaria
*[https://web.archive.org/web/20121109143915/http://ocsigen.org/js_of_ocaml/files/hyperbolic/index.html Tree of life] Similar to the above, but with pictures
*[http://www.roguetemple.com/z/hyper/rogueviz.php RougeViz] supports hyperbolic trees.

评论 (0)

  • 还没有评论,来抢沙发吧。