Create a network diagram illustrating the simplified module dependencies of a
simulation. Offers a less detailed view of specific objects than does
plotting the depsEdgeList directly with objectDiagram().
moduleDiagram(sim, type, showParents = TRUE, ...)
# S4 method for class 'simList,character,logical'
moduleDiagram(sim, type = "plot", showParents = TRUE, ...)
# S4 method for class 'simList,ANY,ANY'
moduleDiagram(sim, type, showParents = TRUE, ...)A simList object (typically corresponding to a
completed simulation).
Character string, either "rgl" for igraph::rglplot
or "tk" for igraph::tkplot, "Plot" to use quickPlot::Plot()
or "plot" to use base::plot(), the default.
Logical. If TRUE, then any children that are grouped into parent
modules will be grouped together by coloured blobs. Internally,
this is calling moduleGraph(). Default FALSE.
Additional arguments passed to plotting function specified by type.
invoked for its side effect of plotting the module dependency diagram.
igraph::igraph, moduleGraph() for a version that accounts for
parent and children module structure.
# \donttest{
if (requireNamespace("SpaDES.tools", quietly = TRUE) &&
packageVersion("SpaDES.tools") > "3.0.0") {
library(igraph)
times <- list(start = 0, end = 6, "month")
parameters <- list(
.globals = list(stackName = "landscape"),
caribouMovement = list(
.saveObjects = "caribou",
.saveInitialTime = 1, .saveInterval = 1
),
randomLandscapes = list(.plotInitialTime = NA, nx = 20, ny = 20))
modules <- list("randomLandscapes", "caribouMovement")
paths <- list(
modulePath = getSampleModules(tempdir())
)
# Set some options so example runs faster
opts <- options(spades.moduleCodeChecks = FALSE, spades.loadReqdPkgs = FALSE)
sim <- simInit(times = times, params = parameters, modules = modules,
paths = paths)
options(opts)
moduleDiagram(sim)
# Can also use default base::plot
modDia <- depsGraph(sim, plot = TRUE)
# See ?plot.igraph
plot(modDia, layout = layout_as_star)
# Or for more control - here, change the label "_INPUT_" to "DATA"
edgeList <- depsEdgeList(sim)
edgeList <- edgeList[, list(from, to)]
edgeList[from == "_INPUT_", from := "Data"]
edgeList[to == "_INPUT_", to := "Data"]
edgeList <- unique(edgeList)
ig <- graph_from_data_frame(edgeList[, list(from, to)])
plot(ig)
}
# }