plot.network
produces a simple two-dimensional plot of network x
, using optional attribute attrname
to set edge values. A variety of options are available to control vertex placement, display details, color, etc.
"plot"(x, ...)
"plot.network"(x, attrname = NULL, label = network.vertex.names(x), coord = NULL, jitter = TRUE, thresh = 0, usearrows = TRUE, mode = "fruchtermanreingold", displayisolates = TRUE, interactive = FALSE, xlab = NULL, ylab = NULL, xlim = NULL, ylim = NULL, pad = 0.2, label.pad = 0.5, displaylabels = !missing(label), boxed.labels = FALSE, label.pos = 0, label.bg = "white", vertex.sides = 50, vertex.rot = 0, vertex.lwd=1, arrowhead.cex = 1, label.cex = 1, loop.cex = 1, vertex.cex = 1, edge.col = 1, label.col = 1, vertex.col = 2, label.border = 1, vertex.border = 1, edge.lty = 1, label.lty = NULL, vertex.lty = 1, edge.lwd = 0, edge.label = NULL, edge.label.cex = 1, edge.label.col = 1, 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, ...)
network
. network.vertex.names
. If label
has one element and it matches with a vertex attribute name, the value of the attribute will be used. Note that labels may be set but hidden by the displaylabels
argument.mode
setting. thresh
are displayed. By default, thresh
=0.network.layout
function. boxed.labels==TRUE
), in character size units. 0
results in labels which are placed away from the center of the plotting region; 1
, 2
, 3
, and 4
result in labels being placed below, to the left of, above, and to the right of vertices (respectively); and label.pos>=5
results in labels which are plotted with no offset (i.e., at the vertex positions). boxed.labels==TRUE
); may be a vector, if boxes are to be of different colors.boxed.labels==TRUE
); may be given as a vector, if label boxes are to have different colors. boxed.labels==TRUE
); may be given as a vector, if label boxes are to have different line types. edge.lwd*dat
. May be given as a vector, adjacency matrix, or edge attribute name, if edges are to have different line widths. NULL
, labels for edges will be drawn. May be given as a vector, adjacency matrix, or edge attribute name, if edges are to have different labels. A single value of TRUE
will use edge ids as labels. NOTE: currently doesn't work for curved edges.boxed.labels==TRUE
); may be given as a vector, if label boxes are to have different line widths. uselen==TRUE
, curved edge lengths are scaled by edge.len
. usecurve==TRUE
, the extent of edge curvature is controlled by edge.curv
. May be given as a fixed value, vector, adjacency matrix, or edge attribute name, if edges are to have different levels of curvature. edge.len
to rescale edge lengths? edge.curve
? new==FALSE
, vertices and edges will be added to the existing plot. network.layout
function specified in mode
. plot
. plot.network
is the standard visualization tool for the network
class. By means of clever selection of display parameters, a fair amount of display flexibility can be obtained. Vertex 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 network.layout
for a full list. User-supplied layout functions are also possible -- see the aforementioned man page for details.Note that where is.hyper(x)==TRUE
, the network is converted to bipartite adjacency form prior to computing coordinates. If interactive==TRUE
, then the user may modify the initial network 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.
Wasserman, S., and Faust, K. (1994). Social Network Analysis: Methods and Applications. Cambridge: Cambridge University Press.
network
, network.arrow
, network.loop
, network.vertex
#Construct a sparse graph
m<-matrix(rbinom(100,1,1.5/9),10)
diag(m)<-0
g<-network(m)
#Plot the graph
plot(g)
#Load Padgett's marriage data
data(flo)
nflo<-network(flo)
#Display the network, indicating degree and flagging the Medicis
plot(nflo, vertex.cex=apply(flo,2,sum)+1, usearrows=FALSE,
vertex.sides=3+apply(flo,2,sum),
vertex.col=2+(network.vertex.names(nflo)=="Medici"))
Run the code above in your browser using DataLab