Skip to contents

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

Usage

layout_with_gem(
  graph,
  ...,
  coords = NULL,
  maxiter = NULL,
  temp.max = NULL,
  temp.min = 0.1,
  temp.init = NULL
)

with_gem(...)

Arguments

graph

The input graph. Edge directions are ignored.

...

Passed to layout_with_gem().

coords

Starting coordinates in a two or three column matrix, depending on the dim argument. Default: NULL.

maxiter

The maximum number of iterations to perform. Updating a single vertex counts as an iteration. The default NULL uses 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. The default NULL uses 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. The default NULL uses the square root of the number of vertices.

Value

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

Details

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

layout_gem(), vcount()

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.

Author

Gabor Csardi csardi.gabor@gmail.com

Examples


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