Hyperbolic tree
A hyperbolic tree (often shortened as hypertree) in Web development jargon and information visualization, defines a graph drawing method inspired by hyperbolic geometry.
Displaying hierarchical data as a tree suffers from visual clutter as the number of nodes per level can grow exponentially. For a simple binary tree, the maximum number of nodes at a level n is 2n, while the number of nodes for larger trees grows much more quickly. Drawing the tree as a node-link diagram thus requires exponential amounts of space to be displayed.
One approach is to use a hyperbolic tree, first introduced by Lamping et al.[1] Hyperbolic trees employ hyperbolic space, which intrinsically has "more room" than Euclidean space. For instance, linearly increasing the radius of a circle in Euclidean space increases its circumference linearly, while the same circle in hyperbolic space would have its circumference increase exponentially. Exploiting this property allows laying out the tree in hyperbolic space in an uncluttered manner: placing a node far enough from its parent gives the node almost the same amount of space as its parent for laying out its own children.
Displaying a hyperbolic tree commonly utilizes the Poincaré disk model of hyperbolic geometry, though the Klein-Beltrami model can also be used. Both display the entire hyperbolic plane within a unit disk, making the entire tree visible at once. The unit disk gives a fish-eye lens view of the plane, giving more emphasis to nodes which are in focus and displaying nodes further out of focus closer to the boundary of the disk. Traversing the hyperbolic tree requires Möbius transformations of the space, bringing new nodes into focus and moving higher levels of the hierarchy out of view.
Although hyperbolic trees have been patented in the U.S. by Xerox, various Java & JavaScript implementations exist on the web as well as C++ & OpenGL.[2][3][4]
See also
- Hyperbolic geometry
- Information visualization
- Tree (graph theory)
- Tree (data structure)
- Radial tree - is also circular, but uses linear geometry.
References
- Lamping, John; Rao, Ramana; Pirolli, Peter (1995). "A Focus+Context Technique Based on Hyperbolic Geometry for Visualizing Large Hierarchies". Proc. ACM Conf. Human Factors in Computing Systems, CHI. ACM. pp. 401–408.
- ↑ http://sigchi.org/chi95/Electronic/documnts/papers/jl_bdy.htm
- ↑ http://vsxu.com
- ↑ http://vsxu.com/shots/030.jpg
- ↑ http://patft.uspto.gov/netacgi/nph-Parser?Sect2=PTO1&Sect2=HITOFF&p=1&u=%2Fnetahtml%2FPTO%2Fsearch-bool.html&r=1&f=G&l=50&d=PALL&RefSrch=yes&Query=PN%2F5590250
External links
Wikimedia Commons has media related to Hyperbolic trees. |
- http://sigchi.org/chi95/Electronic/documnts/papers/jl_bdy.htm
- JavaScript InfoVis Toolkit has an interactive Hyperbolic Tree visualization.
- The Green Tree of Life - Tree of life - University of California at Berkeley and Jepson Herbaria
- Tree of life Similar to the above, but with pictures
- http://xebece.sourceforge.net/screenshots
- http://hypergraph.sourceforge.net/ Applet, supports trees as well as generic graphs
- VisualComplexity Images of alternative visualizations
- TouchGraph Live demonstration
- Comprehensive survey and bibliography of Tree Visualization techniques