Place vertices on the plane using the GEM force-directed layout algorithm.
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(...)
A numeric matrix with two columns, and as many rows as the number of vertices.
The input graph. Edge directions are ignored.
If not NULL
, then the starting coordinates should be
given here, in a two or three column matrix, depending on the dim
argument.
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.
The maximum allowed local temperature. A reasonable default is the number of vertices.
The global temperature at which the algorithm terminates
(even before reaching maxiter
iterations). A reasonable default is
1/10.
Initial local temperature of all vertices. A reasonable default is the square root of the number of vertices.
Passed to layout_with_gem
.
Gabor Csardi csardi.gabor@gmail.com
See the referenced paper below for the details of the algorithm.
Arne Frick, Andreas Ludwig, Heiko Mehldau: A Fast Adaptive Layout Algorithm for Undirected Graphs, Proc. Graph Drawing 1994, LNCS 894, pp. 388-403, 1995.
layout_with_fr
,
plot.igraph
, tkplot
Other graph layouts:
add_layout_()
,
component_wise()
,
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()
,
layout_()
,
merge_coords()
,
norm_coords()
,
normalize()
set.seed(42)
g <- make_ring(10)
plot(g, layout=layout_with_gem)
Run the code above in your browser using DataLab