network.layout {network}R Documentation

Vertex Layout Functions for plot.network

Description

Various functions which generate vertex layouts for the plot.network visualization routine.

Usage

network.layout.circle(d, layout.par)
network.layout.fruchtermanreingold(d, layout.par)
network.layout.kamadakawai(d, layout.par)

Arguments

d an adjacency matrix, as passed by plot.network.
layout.par a list of parameters.

Details

Vertex layouts for network visualization pose a difficult problem – there is no single, ``good'' layout algorithm, and many different approaches may be valuable under different circumstances. With this in mind, plot.network allows for the use of arbitrary vertex layout algorithms via the network.layout.* family of routines. When called, plot.network searches for a network.layout function whose fourth name matches its mode argument (see plot.network help for more information); this function is then used to generate the layout for the resulting plot. In addition to the routines documented here, users may add their own layout functions as needed. The requirements for a network.layout function are as follows:

  1. the first argument, d, must be the (dichotomous) graph adjacency matrix;
  2. the second argument, layout.par, must be a list of parameters (or NULL, if no parameters are specified); and
  3. the return value must be a real matrix of dimension c(2,NROW(d)), whose rows contain the vertex coordinates.

Other than this, anything goes. (In particular, note that layout.par could be used to pass additional matrices, if needed.)

The network.layout functions currently supplied by default are as follows:

circle
This function places vertices uniformly in a circle; it takes no arguments.
fruchtermanreingold
This function generates a layout using a variant of Fruchterman and Reingold's force-directed placement algorithm. It takes the following arguments:
layout.par$niter
This argument controls the number of iterations to be employed. (Defaults to 500.)
layout.par$max.delta
Sets the maximum change in position for any given iteration. (Defaults to NROW(d).)
layout.par$area
Sets the "area" parameter for the F-R algorithm. (Defaults to NROW(d)^2.)
layout.par$cool.exp
Sets the cooling exponent for the annealer. (Defaults to 3.)
layout.par$repulse.rad
Determines the radius at which vertex-vertex repulsion cancels out attraction of adjacent vertices. (Defaults to area*NROW(d).)
layout.par$seed.coord
A two-column matrix of initial vertex coordinates. (Defaults to a random circular layout.)
kamadakawai
This function generates a vertex layout using a version of the Kamada-Kawai force-directed placement algorithm. It takes the following arguments:
layout.par$niter
This argument controls the number of iterations to be employed. (Defaults to 1000.)
layout.par$sigma
Sets the base standard deviation of position change proposals. (Defaults to NROW(d)/4.)
layout.par$initemp
Sets the initial "temperature" for the annealing algorithm. (Defaults to 10.)
layout.par$cool.exp
Sets the cooling exponent for the annealer. (Defaults to 0.99.)
layout.par$kkconst
Sets the Kamada-Kawai vertex attraction constant. (Defaults to NROW(d)^2.)
layout.par$elen
Provides the matrix of interpoint distances to be approximated. (Defaults to the geodesic distances of d after symmetrizing, capped at sqrt(NROW(d)).)
layout.par$seed.coord
A two-column matrix of initial vertex coordinates. (Defaults to a gaussian layout.)

Value

A matrix whose rows contain the x,y coordinates of the vertices of d.

Note

The network.layout routines shown here are adapted directly from the gplot.layout routines of the sna package.

Author(s)

Carter T. Butts buttsc@uci.edu

References

Butts, C. T. (2008). “network: a Package for Managing Relational Data in R.” Journal of Statistical Software, 24(2). http://www.jstatsoft.org/v24/i02/

Fruchterman, T.M.J. and Reingold, E.M. (1991). “Graph Drawing by Force-directed Placement.” Software - Practice and Experience, 21(11):1129-1164.

Kamada, T. and Kawai, S. (1989). “An Algorithm for Drawing General Undirected Graphs.” Information Processing Letters, 31(1):7-15.

See Also

plot.network


[Package network version 1.4-1 Index]