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 = vcount(graph), temp.min = 1/10,
temp.init = sqrt(vcount(graph)))with_gem(...)
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
.
A numeric matrix with two columns, and as many rows as the number of vertices.
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_
;
as_bipartite
,
layout.bipartite
,
layout_as_bipartite
; as_star
,
layout.star
, layout_as_star
;
as_tree
, layout_as_tree
;
component_wise
; in_circle
,
layout_in_circle
;
layout.auto
, layout_nicely
,
nicely
;
layout.davidson.harel
,
layout_with_dh
, with_dh
;
layout.graphopt
,
layout_with_graphopt
,
with_graphopt
; layout.grid
,
layout.grid.3d
,
layout.grid.3d
,
layout_on_grid
, on_grid
;
layout.mds
, layout_with_mds
,
with_mds
; layout.merge
,
layout_components
,
merge_coords
,
piecewise.layout
,
piecewise.layout
;
layout.norm
, norm_coords
;
layout.sugiyama
,
layout_with_sugiyama
,
with_sugiyama
;
layout_on_sphere
, on_sphere
;
layout_randomly
, randomly
;
layout_with_fr
, with_fr
;
layout_with_kk
, with_kk
;
layout_with_lgl
, with_lgl
;
layout
, layout_
,
print.igraph_layout_modifier
,
print.igraph_layout_spec
;
normalize
# NOT RUN {
set.seed(42)
g <- make_ring(10)
plot(g, layout=layout_with_gem)
# }
Run the code above in your browser using DataLab