ggraph (version 1.0.2)

layout_igraph_circlepack: Calculate nodes as circles packed within their parent circle

Description

The circle packing algorithm is basically a treemap using circles instead of rectangles. Due to the nature of circles they cannot be packed as efficeintly leading to increased amount of "empty space" as compared to a treemap. This can be beneficial though, as the added empty space can aid in visually showing the hierarchy.

Usage

layout_igraph_circlepack(graph, weight = NULL, circular = FALSE,
  sort.by = NULL, direction = "out")

Arguments

graph

An igraph object

weight

An optional vertex attribute to use as weight. Will only affect the weight of leaf nodes as the weight of non-leaf nodes are derived from their children.

circular

Logical. Should the layout be transformed to a circular representation. Ignored.

sort.by

The name of a vertex attribute to sort the nodes by.

direction

The direction of the tree in the graph. 'out' (default) means that parents point towards their children, while 'in' means that children point towards their parent.

Value

A data.frame with the columns x, y, r, leaf, depth, circular as well as any information stored as vertex attributes on the igraph object.

Details

The circle packing is based on the algorithm developed by Weixin Wang and collaborators which tries to find the most dense packing of circles as they are added, one by one. This makes the algorithm very dependent on the order in which circles are added and it is possible that layouts could sometimes be optimized by choosing a different ordering. The algorithm for finding the enclosing circle is that randomized incremental algorithm proposed by Emo Welzl. Both of the above algorithms are the same as used in the D3.js implementation of circle packing and their C++ implementation in ggraph is inspired by Mike Bostocks JavaScript implementation.

References

Wang, W., Wang, H. H., Dai, G., & Wang, H. (2006). Visualization of large hierarchical data by circle packing. Chi, 517-520.

Welzl, E. (1991). Smallest enclosing disks (balls and ellipsoids). New Results and New Trends in Computer Science, 359-370.

See Also

Other layout_igraph_*: layout_igraph_auto, layout_igraph_dendrogram, layout_igraph_hive, layout_igraph_linear, layout_igraph_manual, layout_igraph_partition, layout_igraph_treemap