R: The DrL graph layout generator

layout_with_drl {igraph} | R Documentation

## The DrL graph layout generator

### Description

DrL is a force-directed graph layout toolbox focused on real-world large-scale graphs, developed by Shawn Martin and colleagues at Sandia National Laboratories.

### Usage

    layout_with_drl(
      graph,
      use.seed = FALSE,
      seed = matrix(runif(vcount(graph) * 2), ncol = 2),
      options = drl_defaults$default,
      weights = E(graph)$weight,
      fixed = NULL,
      dim = 2
    )

    with_drl(...)

### Arguments

`graph` | The input graph, in can be directed or undirected.
`use.seed` | Logical scalar, whether to use the coordinates given in the `seed` argument as a starting point.
`seed` | A matrix with two columns, the starting coordinates for the vertices is `use.seed` is `TRUE`. It is ignored otherwise.
`options` | Options for the layout generator, a named list. See details below.
`weights` | Optional edge weights. Supply `NULL` here if you want to weight edges equally. By default the `weight` edge attribute is used if the graph has one. Larger weights correspond to stronger connections, and the vertices will be placed closer to each other.
`fixed` | Logical vector, it can be used to fix some vertices. All vertices for which it is `TRUE` are kept at the coordinates supplied in the `seed` matrix. It is ignored it `NULL` or if `use.seed` is `FALSE`.
`dim` | Either ‘2’ or ‘3’, it specifies whether we want a two dimensional or a three dimensional layout. Note that because of the nature of the DrL algorithm, the three dimensional layout takes significantly longer to compute.
`...` | Passed to `layout_with_drl`.

### Details

This function implements the force-directed DrL layout generator.

The generator has the following parameters:

edge.cut

  Edge cutting is done in the late stages of the algorithm in order to achieve less dense layouts. Edges are cut if there is a lot of stress on them (a large value in the objective function sum). The edge cutting parameter is a value between 0 and 1 with 0 representing no edge cutting and 1 representing maximal edge cutting.

init.iterations

  Number of iterations in the first phase.

init.temperature

  Start temperature, first phase.

init.attraction

  Attraction, first phase.

init.damping.mult

  Damping, first phase.

liquid.iterations

  Number of iterations, liquid phase.

liquid.temperature

  Start temperature, liquid phase.

liquid.attraction

  Attraction, liquid phase.

liquid.damping.mult

  Damping, liquid phase.

expansion.iterations

  Number of iterations, expansion phase.

expansion.temperature

  Start temperature, expansion phase.

expansion.attraction

  Attraction, expansion phase.

expansion.damping.mult

  Damping, expansion phase.

cooldown.iterations

  Number of iterations, cooldown phase.

cooldown.temperature

  Start temperature, cooldown phase.

cooldown.attraction

  Attraction, cooldown phase.

cooldown.damping.mult

  Damping, cooldown phase.

crunch.iterations

  Number of iterations, crunch phase.

crunch.temperature

  Start temperature, crunch phase.

crunch.attraction

  Attraction, crunch phase.

crunch.damping.mult

  Damping, crunch phase.

simmer.iterations

  Number of iterations, simmer phase.

simmer.temperature

  Start temperature, simmer phase.

simmer.attraction

  Attraction, simmer phase.

simmer.damping.mult

  Damping, simmer phase.

There are five pre-defined parameter settings as well, these are called `drl_defaults$default`, `drl_defaults$coarsen`, `drl_defaults$coarsest`, `drl_defaults$refine` and `drl_defaults$final`.

### Value

A numeric matrix with two columns.

### Author(s)

Shawn Martin (http://www.cs.otago.ac.nz/homepages/smartin/) and Gabor Csardi csardi.gabor@gmail.com for the R/igraph interface and the three dimensional version.

### References

See the following technical report: Martin, S., Brown, W.M., Klavans, R., Boyack, K.W., DrL: Distributed Recursive (Graph) Layout. SAND Reports, 2008. 2936: p. 1-10.

### See Also

`layout` for other layout generators.

### Examples

    g <- as.undirected(sample_pa(100, m=1))
    l <- layout_with_drl(g, options=list(simmer.attraction=0))
    ## Not run:
    plot(g, layout=l, vertex.size=3, vertex.label=NA)

    ## End(Not run)

[Package igraph version 1.2.11 Index]