Use this if you are using igraph from R
| layout_with_gem {igraph} | R Documentation | 
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(...)
| graph | The input graph. Edge directions are ignored. | 
| coords | If not  | 
| 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  | 
| temp.init | Initial local temperature of all vertices. A reasonable default is the square root of the number of vertices. | 
| ... | Passed to  | 
See the referenced paper below for the details of the algorithm.
A numeric matrix with two columns, and as many rows as the number of vertices.
Gabor Csardi csardi.gabor@gmail.com
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)