ggraph (version 0.1.1)

layout_igraph_hive: Place nodes in a Hive Plot layout

Description

Hive plots were invented by Martin Krzywinski as a perceptually uniform and scalable alternative to standard node-edge layouts. In hive plots nodes are positioned on axes radiating out from a center based on their own information e.g. membership of a class, size of neighborhood, etc. Edges are then drawn between nodes as bezier curves. As the placement of nodes is not governed by convoluted algorithms but directly reflects the qualities of the nodes itself the resulting plot can be easier to interpret as well as compare to other graphs.

Usage

layout_igraph_hive(graph, axis, axis.pos = NULL, sort.by = NULL, divide.by = NULL, divide.order = NULL, normalize = TRUE, center.size = 0.1, divide.size = 0.05, use.numeric = FALSE, offset = pi/2, split.axes = "none", split.angle = pi/6, circular = FALSE)

Arguments

graph
An igraph object
axis
The node attribute to use for assigning nodes to axes
axis.pos
The relative distance to the prior axis. Default (NULL) places axes equidistant.
sort.by
The node attribute to use for placing nodes along their axis. Defaults (NULL) places nodes sequentially.
divide.by
An optional node attribute to subdivide each axis by.
divide.order
The order the axis subdivisions should appear in
normalize
Logical. Should axis lengths be equal or reflect the number of nodes in each axis. Defaults to TRUE.
center.size
The size of the blank center, that is, the start position of the axes.
divide.size
The distance between subdivided axis segments.
use.numeric
Logical, If the sort.by attribute is numeric, should these values be used directly in positioning the nodes along the axes. Defaults to FALSE which sorts the numeric values and positions them equidistant from each other.
offset
Change the overall rotation of the hive plot by changing the offset of the first axis.
split.axes
Should axes be split to show edges between nodes on the same axis? One of:
split.angle
The angular distance between the two axes resulting from a split.
circular
Ignored.

Value

A data.frame with the columns x, y, r, centerSize, split, axis, section, angle, circular as well as any information stored as vertex attributes on the igraph object.

Details

In order to be able to draw all edges without edges crossing axes you should not assign nodes to axes based on a variable with more than three levels.

References

Krzywinski, M., Birol, I., Jones, SJM., and Marra, MA. (2012). Hive plots-rational approach to visualizing networks. Brief Bioinform 13 (5): 627-644. http://doi.org/10.1093/bib/bbr069

http://www.hiveplot.net

See Also

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