layout_with_gem: The GEM layout algorithm

View source: R/layout.R

layout_with_gemR Documentation

The GEM layout algorithm

Description

Place vertices on the plane using the GEM force-directed layout algorithm.

Usage

layout_with_gem(
  graph,
  coords = NULL,
  maxiter = 40 * vcount(graph)^2,
  temp.max = max(vcount(graph), 1),
  temp.min = 1/10,
  temp.init = sqrt(max(vcount(graph), 1))
)

with_gem(...)

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.

maxiter

The maximum number of iterations to perform. Updating a single vertex counts as an iteration. A reasonable default is 40 * n * n, where n is the number of vertices. The original paper suggests 4 * n * n, but this usually only works if the other parameters are set up carefully.

temp.max

The maximum allowed local temperature. A reasonable default is the number of vertices.

temp.min

The global temperature at which the algorithm terminates (even before reaching maxiter iterations). A reasonable default is 1/10.

temp.init

Initial local temperature of all vertices. A reasonable default is the square root of the number of vertices.

...

Passed to layout_with_gem().

Details

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

Value

A numeric matrix with two columns, and as many rows as the number of vertices.

Author(s)

Gabor Csardi csardi.gabor@gmail.com

References

Arne Frick, Andreas Ludwig, Heiko Mehldau: A Fast Adaptive Layout Algorithm for Undirected Graphs, Proc. Graph Drawing 1994, LNCS 894, pp. 388-403, 1995.

See Also

layout_with_fr(), plot.igraph(), tkplot()

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_fr(), layout_with_graphopt(), layout_with_kk(), layout_with_lgl(), layout_with_mds(), layout_with_sugiyama(), merge_coords(), norm_coords(), normalize()

Examples


set.seed(42)
g <- make_ring(10)
plot(g, layout = layout_with_gem)


igraph documentation built on Oct. 20, 2024, 1:06 a.m.