View source: R/visualization.R

gplot | R Documentation |

`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.

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, ...)

`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 |

`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.

A two-column matrix containing the vertex positions as x,y coordinates.

Carter T. Butts buttsc@uci.edu

Alex Montgomery ahm@reed.edu

Wasserman, S. and Faust, K. (1994) *Social Network Analysis: Methods and Applications.* Cambridge: Cambridge University Press.

`plot`

, `gplot.layout`

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")

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.