gplot {sna} | R Documentation |
Two-Dimensional Visualization of Graphs
Description
gplot
produces a two-dimensional plot of graph g
in collection dat
. A variety of options are available to control vertex placement, display details, color, etc.
Usage
gplot(dat, g = 1, gmode = "digraph", diag = FALSE,
label = NULL, coord = NULL, jitter = TRUE, thresh = 0,
thresh.absval=TRUE, usearrows = TRUE, mode = "fruchtermanreingold",
displayisolates = TRUE, interactive = FALSE, interact.bycomp = FALSE,
xlab = NULL, ylab = NULL, xlim = NULL, ylim = NULL, pad = 0.2,
label.pad = 0.5, displaylabels = !is.null(label), boxed.labels = FALSE,
label.pos = 0, label.bg = "white", vertex.enclose = FALSE,
vertex.sides = NULL, vertex.rot = 0, arrowhead.cex = 1, label.cex = 1,
loop.cex = 1, vertex.cex = 1, edge.col = 1, label.col = 1,
vertex.col = NULL, label.border = 1, vertex.border = 1, edge.lty = NULL,
edge.lty.neg=2, label.lty = NULL, vertex.lty = 1, edge.lwd = 0,
label.lwd = par("lwd"), edge.len = 0.5, edge.curve = 0.1,
edge.steps = 50, loop.steps = 20, object.scale = 0.01, uselen = FALSE,
usecurve = FALSE, suppress.axes = TRUE, vertices.last = TRUE,
new = TRUE, layout.par = NULL, ...)
Arguments
dat |
a graph or set thereof. This data may be valued. |
g |
integer indicating the index of the graph which is to be plotted. By default, |
gmode |
String indicating the type of graph being evaluated. |
diag |
boolean indicating whether or not the diagonal should be treated as valid data. Set this true if and only if the data can contain loops. |
label |
a vector of vertex labels, if desired; defaults to the vertex index number. |
coord |
user-specified vertex coordinates, in an NCOL(dat)x2 matrix. Where this is specified, it will override the |
jitter |
boolean; should the output be jittered? |
thresh |
real number indicating the lower threshold for tie values. Only ties of value > |
thresh.absval |
boolean; should the absolute value of edge weights be used when thresholding? (Defaults to TRUE; setting to FALSE leads to thresholding by signed weights.) |
usearrows |
boolean; should arrows (rather than line segments) be used to indicate edges? |
mode |
the vertex placement algorithm; this must correspond to a |
displayisolates |
boolean; should isolates be displayed? |
interactive |
boolean; should interactive adjustment of vertex placement be attempted? |
interact.bycomp |
boolean; if |
xlab |
x axis label. |
ylab |
y axis label. |
xlim |
the x limits (min, max) of the plot. |
ylim |
the y limits of the plot. |
pad |
amount to pad the plotting range; useful if labels are being clipped. |
label.pad |
amount to pad label boxes (if |
displaylabels |
boolean; should vertex labels be displayed? |
boxed.labels |
boolean; place vertex labels within boxes? |
label.pos |
position at which labels should be placed, relative to vertices. |
label.bg |
background color for label boxes (if |
vertex.enclose |
boolean; should vertices be enclosed within circles? (Can increase legibility for polygonal vertices.) |
vertex.sides |
number of polygon sides for vertices; may be given as a vector, if vertices are to be of different types. By default, 50 sides are used (or 50 and 4, for two-mode data). |
vertex.rot |
angle of rotation for vertices (in degrees); may be given as a vector, if vertices are to be rotated differently. |
arrowhead.cex |
expansion factor for edge arrowheads. |
label.cex |
character expansion factor for label text. |
loop.cex |
expansion factor for loops; may be given as a vector, if loops are to be of different sizes. |
vertex.cex |
expansion factor for vertices; may be given as a vector, if vertices are to be of different sizes. |
edge.col |
color for edges; may be given as a vector or adjacency matrix, if edges are to be of different colors. |
label.col |
color for vertex labels; may be given as a vector, if labels are to be of different colors. |
vertex.col |
color for vertices; may be given as a vector, if vertices are to be of different colors. By default, red is used (or red and blue, for two-mode data). |
label.border |
label border colors (if |
vertex.border |
border color for vertices; may be given as a vector, if vertex borders are to be of different colors. |
edge.lty |
line type for (positive weight) edges; may be given as a vector or adjacency matrix, if edges are to have different line types. |
edge.lty.neg |
line type for negative weight edges, if any; may be given as per |
label.lty |
line type for label boxes (if |
vertex.lty |
line type for vertex borders; may be given as a vector or adjacency matrix, if vertex borders are to have different line types. |
edge.lwd |
line width scale for edges; if set greater than 0, edge widths are scaled by |
label.lwd |
line width for label boxes (if |
edge.len |
if |
edge.curve |
if |
edge.steps |
for curved edges (excluding loops), the number of line segments to use for the curve approximation. |
loop.steps |
for loops, the number of line segments to use for the curve approximation. |
object.scale |
base length for plotting objects, as a fraction of the linear scale of the plotting region. Defaults to 0.01. |
uselen |
boolean; should we use |
usecurve |
boolean; should we use |
suppress.axes |
boolean; suppress plotting of axes? |
vertices.last |
boolean; plot vertices after plotting edges? |
new |
boolean; create a new plot? If |
layout.par |
parameters to the |
... |
additional arguments to |
Details
gplot
is the standard network visualization tool within the sna
library. By means of clever selection of display parameters, a fair amount of display flexibility can be obtained. Graph layout – if not specified directly using coord
– is determined via one of the various available algorithms. These should be specified via the mode
argument; see gplot.layout
for a full list. User-supplied layout functions are also possible – see the aforementioned man page for details.
Note that where gmode=="twomode"
, the supplied two-mode network is converted to bipartite form prior to computing coordinates (if not in that form already). vertex.col
or other settings may be used to differentiate row and column vertices – by default, row vertices are drawn as red circles, and column vertices are rendered as blue squares. If interactive==TRUE
, then the user may modify the initial graph layout by selecting an individual vertex and then clicking on the location to which this vertex is to be moved; this process may be repeated until the layout is satisfactory. If interact.bycomp==TRUE
as well, the vertex and all other vertices in the same component as that vertex are moved together.
Value
A two-column matrix containing the vertex positions as x,y coordinates.
Author(s)
Carter T. Butts buttsc@uci.edu
Alex Montgomery ahm@reed.edu
References
Wasserman, S. and Faust, K. (1994) Social Network Analysis: Methods and Applications. Cambridge: Cambridge University Press.
See Also
Examples
gplot(rgraph(5)) #Plot a random graph
gplot(rgraph(5),usecurv=TRUE) #This time, use curved edges
gplot(rgraph(5),mode="mds") #Try an alternative layout scheme
#A colorful demonstration...
gplot(rgraph(5,diag=TRUE),diag=TRUE,vertex.cex=1:5,vertex.sides=3:8,
vertex.col=1:5,vertex.border=2:6,vertex.rot=(0:4)*72,
displaylabels=TRUE,label.bg="gray90")