| layout_with_fr {igraph} | R Documentation |
The Fruchterman-Reingold layout algorithm
Description
Place vertices on the plane using the force-directed layout algorithm by Fruchterman and Reingold.
Usage
layout_with_fr(
graph,
coords = NULL,
dim = 2,
niter = 500,
start.temp = sqrt(vcount(graph)),
grid = c("auto", "grid", "nogrid"),
weights = NULL,
minx = NULL,
maxx = NULL,
miny = NULL,
maxy = NULL,
minz = NULL,
maxz = NULL,
coolexp,
maxdelta,
area,
repulserad,
maxiter
)
with_fr(...)
Arguments
graph |
The graph to lay out. Edge directions are ignored. |
coords |
Optional starting positions for the vertices. If this argument
is not |
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. |
niter |
Integer scalar, the number of iterations to perform. |
start.temp |
Real scalar, the start temperature. This is the maximum amount of movement alloved along one axis, within one step, for a vertex. Currently it is decreased linearly to zero during the iteration. |
grid |
Character scalar, whether to use the faster, but less accurate grid based implementation of the algorithm. By default (“auto”), the grid-based implementation is used if the graph has more than one thousand vertices. |
weights |
A vector giving edge weights. The |
minx |
If not |
maxx |
Similar to |
miny |
Similar to |
maxy |
Similar to |
minz |
Similar to |
maxz |
Similar to |
coolexp, maxdelta, area, repulserad |
These arguments are not supported from igraph version 0.8.0 and are ignored (with a warning). |
maxiter |
A deprecated synonym of |
... |
Passed to |
Details
See the referenced paper below for the details of the algorithm.
This function was rewritten from scratch in igraph version 0.8.0.
Value
A two- or three-column matrix, each row giving the coordinates of a vertex, according to the ids of the vertex ids.
Author(s)
Gabor Csardi csardi.gabor@gmail.com
References
Fruchterman, T.M.J. and Reingold, E.M. (1991). Graph Drawing by Force-directed Placement. Software - Practice and Experience, 21(11):1129-1164.
See Also
layout_with_drl(), layout_with_kk() for
other layout algorithms.
Other graph layouts:
add_layout_(),
component_wise(),
layout_(),
layout_as_bipartite(),
layout_as_star(),
layout_as_tree(),
layout_in_circle(),
layout_nicely(),
layout_on_grid(),
layout_on_sphere(),
layout_randomly(),
layout_with_dh(),
layout_with_gem(),
layout_with_graphopt(),
layout_with_kk(),
layout_with_lgl(),
layout_with_mds(),
layout_with_sugiyama(),
merge_coords(),
norm_coords(),
normalize()
Examples
# Fixing ego
g <- sample_pa(20, m = 2)
minC <- rep(-Inf, vcount(g))
maxC <- rep(Inf, vcount(g))
minC[1] <- maxC[1] <- 0
co <- layout_with_fr(g,
minx = minC, maxx = maxC,
miny = minC, maxy = maxC
)
co[1, ]
plot(g,
layout = co, vertex.size = 30, edge.arrow.size = 0.2,
vertex.label = c("ego", rep("", vcount(g) - 1)), rescale = FALSE,
xlim = range(co[, 1]), ylim = range(co[, 2]), vertex.label.dist = 0,
vertex.label.color = "red"
)
axis(1)
axis(2)