Dependency diagrams
devtools::install_github("bergant/depmodelr")
Define modules and dependencies with YAML:
refId: main_package
name: "Main package"
description: "This is the main package"
executables:
- refId: pkg1
name: "Package 1"
description: "This is a package #1"
- refId: pkg2
name: "Package 2"
description: "This is a package #2"
- refId: pkg3
name: "Package 3"
description: "This is a package #3"
executables:
- refId: subPkg1
name: "Sub-package 1"
description: "This is a nested package 1"
- refId: subPkg2
name: "Sub-package 2"
description: "This is a nested package 2"
executables:
- refId: subnest1
name: "Deep nested pkg 1"
description: "This is a package inside sub-package 2"
- refId: subnest2
name: "Deep nested pkg 2"
description: "This is a package inside sub-package 2"
references:
- from: subnest1
to: subnest2
references:
- from: subPkg1
to: subnest2
references:
- from: pkg1
to: pkg2
- from: pkg2
to: subPkg2
library(yaml)
dep1 <- yaml.load_file(system.file("example.yml", package = "depmodelr") )
Create Graphviz DOT Code
library(depmodelr)
diagram <- dep_graph(dep1)
Use DiagrammeR to render
library(DiagrammeR)
grViz(diagram)
Original graphviz graph attributes can be used when creating diagram:
diagram <- dep_graph(dep1, rankdir = "BT")
grViz(diagram)
Create dependecies directly with R lists:
test1 <-
list(
refId = "01", name = "Package 01", executables =
list(
list(refId = "0101", name = "Package 0101"),
list(refId = "0102", name = "Package 0102",
executables = list(
list(refId = "010201", name = "Package 010201"),
list(refId = "010202", name = "Package 010202")
),
references = list(
list(from = "010201", to = "010202")
)
)
),
references = list(
list(from = "0101", to = "0102")
)
)
dot_source <- dep_graph(test1, rankdir="BT")
DiagrammeR::grViz(dot_source)
MIT
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.