plotSG {pcalg} | R Documentation |
Plot the subgraph around a Specific Node in a Graph Object
Description
Plots a subgraph for a specified starting node and a given graph. The subgraph consists of those nodes that can be reached from the starting node by passing no more than a specified number of edges.
Usage
plotSG(graphObj, y, dist, amat = NA, directed = TRUE,
plot = requireNamespace("Rgraphviz"), main = ,
cex.main = 1.25, font.main = par("font.main"), col.main=par("col.main"),
...)
Arguments
graphObj |
An R object of class |
y |
(integer) position of the starting node in the adjacency matrix. |
dist |
Distance of nodes included in subgraph from starting node |
amat |
Precomputed adjacency matrix of type amat.cpdag (optional) |
directed |
|
plot |
logical indicating if the subgraph should be plotted (or just returned). Defaults to true when Rgraphviz is installed. |
main |
title to be used, with a sensible default; see
|
cex.main , font.main , col.main |
optional settings for the
|
... |
optional arguments passed to the |
Details
Commencing at the starting point y
the function looks for the
neighbouring nodes. Beginning with direct parents and children it
will continue hierarchically through the distances to y
. Note
that the neighbourhood does not depend on edge directions. If
directed
is true (as per default), the orientation of the edges
is taken from the initial graph.
For the plotting, the package Rgraphviz must be installed.
Value
the desired subgraph is returned; invisibly, i.e., via
invisible
, if plot
is true.
Author(s)
Daniel Stekhoven, then Martin Maechler.
Examples
## generate a random DAG:
p <- 10
set.seed(45)
myDAG <- randomDAG(p, prob = 0.3)
if(requireNamespace("Rgraphviz")) {
## plot whole the DAG
plot(myDAG, main = "randomDAG(10, prob = 0.3)")
op <- par(mfrow = c(3,2))
## plot the neighbours of node number 8 up to distance 1
plotSG(myDAG, 8, 1, directed = TRUE)
plotSG(myDAG, 8, 1, directed = FALSE)
## plot the neighbours of node number 8 up to distance 2
plotSG(myDAG, 8, 2, directed = TRUE)
plotSG(myDAG, 8, 2, directed = FALSE)
## plot the neighbours of node number 8 up to distance 3
plotSG(myDAG, 8, 3, directed = TRUE)
plotSG(myDAG, 8, 3, directed = FALSE)
## Note that the layout of the subgraph might be different than in the
## original graph, but the graph structure is identical
par(op)
} else { ## without 'Rgraphviz'
sg2d <- plotSG(myDAG, 8, 2, directed = TRUE, plot=FALSE)
sg2u <- plotSG(myDAG, 8, 2, directed = FALSE, plot=FALSE)
}