layout {igraph} | R Documentation |
Some simple and not so simple functions determining the placement of the vertices for drawing a graph.
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)
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. |
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:
vcount(graph)
).vcount(graph)^2
).area
*vcount(graph)).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:
area
times the number of vertices).area
.
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:
area
times the number of vertices).area
.All these functions return a numeric matrix with at least two columns and the same number of lines as the number of vertices.
Gabor Csardi csardi@rmki.kfki.hu
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.
g <- graph.ring(10) layout.random(g) layout.kamada.kawai(g)