Graph layouts

This is a generic function to apply a layout function to a graph.

layout_(graph, layout, ...)

## S3 method for class 'igraph_layout_spec': print(x, ...)

## S3 method for class 'igraph_layout_modifier': print(x, ...)

The input graph.
The layout specification. It must be a call to a layout specification function.
Further modifiers, see a complete list below. For the print methods, it is ignored.
The layout specification

There are two ways to calculate graph layouts in igraph. The first way is to call a layout function (they all have prefix layout_ on a graph, to get the vertex coordinates.

The second way (new in igraph 0.8.0), has two steps, and it is more flexible. First you call a layout specification function (the one without the layout_ prefix, and then layout_ (or add_layout_) to perform the layouting.

The second way is preferred, as it is more flexible. It allows operations before and after the layouting. E.g. using the component_wise argument, the layout can be calculated separately for each component, and then merged to get the final results.


  • The return value of the layout function, usually a two column matrix. For 3D layouts a three column matrix.


Modifiers modify how a layout calculation is performed. Currently implemented modifyers:

  • component_wisecalculates the layout separately for each component of the graph, and then merges them.
  • normalizescales the layout to a square.

See Also

add_layout_ to add the layout to the graph as an attribute.

Other graph layouts: add_layout_; as_bipartite, layout.bipartite, layout_as_bipartite; as_star,, layout_as_star; as_tree, layout_as_tree; component_wise; in_circle, layout_in_circle;, layout_nicely, nicely; layout.davidson.harel, layout_with_dh, with_dh; layout.gem, layout_with_gem, with_gem; 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; normalize

  • layout
  • layout_
  • print.igraph_layout_modifier
  • print.igraph_layout_spec
g <- make_ring(10) + make_full_graph(5)
coords <- layout_(g, as_star())
plot(g, layout = coords)
Documentation reproduced from package igraph, version 1.0.0, License: GPL (>= 2)

Community examples

Looks like there are no examples yet.