| 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:
FALSE.
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)