layout {igraph}R Documentation

Generate coordinates for plotting graphs

Description

Some simple and not so simple functions determining the placement of the vertices for drawing a graph.

Usage

layout.random(graph, params, dim=2)
layout.circle(graph, params)
layout.sphere(graph, params)
layout.fruchterman.reingold(graph, ..., dim=2,
      verbose=igraph.par("verbose"), params)
layout.kamada.kawai(graph, ..., dim=2,
      verbose=igraph.par("verbose"), params)
layout.spring(graph, ..., params)
layout.reingold.tilford(graph, ..., params)
layout.fruchterman.reingold.grid(graph, ...,
      verbose=igraph.par("verbose"), params)
layout.lgl(graph, ..., params)

Arguments

graph The graph to place.
params The list of function dependent parameters.
dim Numeric constant, either 2 or 3. Some functions are able to generate 2d and 3d layouts as well, supply this argument to change the default behavior.
... Function dependent parameters, this is an alternative notation to the params argument.
verbose Logial constant, whether to show a progress bar while calculating the layout.

Details

These functions calculate the coordinates of the vertices for a graph usually based on some optimality criterion.

layout.random simply places the vertices randomly on a square. It has no parameters.

layout.circle places the vertices on a unit circle equidistantly. It has no paramaters.

layout.sphere places the vertices (approximately) uniformly on the surface of a sphere, this is thus a 3d layout. It is not clear however what “uniformly on a sphere” means.

layout.fruchterman.reingold uses a force-based algorithm proposed by Fruchterman and Reingold, see references. Parameters and their default values:

This function was ported from the SNA package.

layout.kamada.kawai is another force based algorithm. Parameters and default values:

This function performs very well for connected graphs, but it gives poor results for unconnected ones. This function was ported from the SNA package.

layout.spring is a spring embedder algorithm. Parameters and default values:

This function was ported from the SNA package.

layout.reingold.tilford generates a tree-like layout, so it is mainly for trees. Parameters and default values:

layout.fruchterman.reingold.grid is similar to layout.fruchterman.reingold but repelling force is calculated only between vertices that are closer to each other than a limit, so it is faster. Patameters and default values:

layout.lgl is for large connected graphs, it is similar to the layout generator of the Large Graph Layout software (http://bioinformatics.icmb.utexas.edu/lgl). Parameters and default values:

Value

All these functions return a numeric matrix with at least two columns and the same number of lines as the number of vertices.

Author(s)

Gabor Csardi csardi@rmki.kfki.hu

References

Fruchterman, T.M.J. and Reingold, E.M. (1991). Graph Drawing by Force-directed Placement. Software - Practice and Experience, 21(11):1129-1164.

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

Reingold, E and Tilford, J (1981). Tidier drawing of trees. IEEE Trans. on Softw. Eng., SE-7(2):223–228.

See Also

plot.igraph, tkplot

Examples

g <- graph.ring(10)
layout.random(g)
layout.kamada.kawai(g)

[Package igraph version 0.2.1 Index]