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.network(x, ...)plot.network.default(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 = FALSE, boxed.labels = TRUE, label.pos = 0,
label.bg = "white", vertex.sides = 8, vertex.rot = 0,
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, 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
.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 placboxed.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.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.
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