layout_with_kk

0th

Percentile

The Kamada-Kawai layout algorithm

Place the vertices on the plane, or in the 3d space, based on a phyisical model of springs.

Keywords
graphs
Usage
layout_with_kk(graph, coords = NULL, dim = 2, maxiter = 50 *
  vcount(graph), epsilon = 0, kkconst = vcount(graph), weights = NULL,
  minx = NULL, maxx = NULL, miny = NULL, maxy = NULL, minz = NULL,
  maxz = NULL, niter, sigma, initemp, coolexp, start)

with_kk(...)

Arguments
graph
The input graph. Edge directions are ignored.
coords
If not NULL, then the starting coordinates should be given here, in a two or three column matrix, depending on the dim argument.
dim
Integer scalar, 2 or 3, the dimension of the layout. Two dimensional layouts are places on a plane, three dimensional ones in the 3d space.
maxiter
The maximum number of iterations to perform. The algorithm might terminate earlier, see the epsilon argument.
epsilon
Numeric scalar, the algorithm terminates, if the maximal delta is less than this. (See the reference below for what delta means.) If you set this to zero, then the function always performs maxiter iterations.
kkconst
Numeric scalar, the Kamada-Kawai vertex attraction constant. Typical (and default) value is the number of vertices.
weights
Edge weights, larger values will result longer edges.
minx
If not NULL, then it must be a numeric vector that gives lower boundaries for the x coordinates of the vertices. The length of the vector must match the number of vertices in the graph.
maxx
Similar to minx, but gives the upper boundaries.
miny
Similar to minx, but gives the lower boundaries of the y coordinates.
maxy
Similar to minx, but gives the upper boundaries of the y coordinates.
minz
Similar to minx, but gives the lower boundaries of the z coordinates.
maxz
Similar to minx, but gives the upper boundaries of the z coordinates.
niter,sigma,initemp,coolexp
These arguments are not supported from igraph version 0.8.0 and are ignored (with a warning).
start
Deprecated synonym for coords, for compatibility.
...
Passed to layout_with_kk.
Details

See the referenced paper below for the details of the algorithm.

This function was rewritten from scratch in igraph version 0.8.0 and it follows truthfully the original publication by Kamada and Kawai now.

Value

  • A numeric matrix with two (dim=2) or three (dim=3) columns, and as many rows as the number of vertices, the x, y and potentially z coordinates of the vertices.

References

Kamada, T. and Kawai, S.: An Algorithm for Drawing General Undirected Graphs. Information Processing Letters, 31/1, 7--15, 1989.

See Also

layout_with_drl, plot.igraph, tkplot

Other graph layouts: add_layout_; as_bipartite, layout.bipartite, layout_as_bipartite; as_star, layout.star, layout_as_star; as_tree, layout_as_tree; component_wise; in_circle, layout_in_circle; layout.auto, layout_nicely, nicely; layout.davidson.harel, layout_with_dh, with_dh; layout.gem, layout_with_gem, with_gem; layout.graphopt, layout_with_graphopt, with_graphopt; layout.grid, layout.grid.3d, layout.grid.3d, layout_on_grid, on_grid; layout.mds, layout_with_mds, with_mds; layout.merge, layout_components, merge_coords, piecewise.layout, piecewise.layout; layout.norm, norm_coords; layout.sugiyama, layout_with_sugiyama, with_sugiyama; layout_on_sphere, on_sphere; layout_randomly, randomly; layout_with_fr, with_fr; layout_with_lgl, with_lgl; layout, layout_, print.igraph_layout_modifier, print.igraph_layout_spec; normalize

Aliases
  • layout_with_kk
  • with_kk
Examples
g <- make_ring(10)
E(g)$weight <- rep(1:2, length.out=ecount(g))
plot(g, layout=layout_with_kk, edge.label=E(g)$weight)
Documentation reproduced from package igraph, version 1.0.0, License: GPL (>= 2)

Community examples

Looks like there are no examples yet.