The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.

Visualizing fault trees

tidyfault builds fault-tree plots on top of ggplot2 and igraph. The workhorse is illustrate(), which lays out nodes and edges; the plot() method returns a ggplot object you can extend.

Database example

Use type = "all" to draw gates and basic events together:

library(tidyfault)
library(ggplot2)

data("db_nodes")
data("db_edges")

gg_db <- illustrate(nodes = db_nodes, edges = db_edges, type = "all")
plot(
  gg_db,
  gate_fill = c(top = "#382a54", and = "#395d9c", or = "#3eb4ad", "basic event" = "#def5e5")
)

What illustrate() returns

illustrate() returns a list with components used by plot() (node positions, edge paths, gate polygons). You can inspect gg_db$nodes or add ggplot layers on top of plot(gg_db).


IT security example (larger tree)

The bundled IT security tree (it_security_nodes, it_security_edges) uses type = "both" to emphasize gate structure and basic events:

data("it_security_nodes")
data("it_security_edges")

gg_sec <- illustrate(
  nodes = it_security_nodes,
  edges = it_security_edges,
  type = "both"
)
plot(
  gg_sec,
  gate_fill = c(top = "#382a54", and = "#395d9c", or = "#3eb4ad", "basic event" = "#def5e5")
)


Workflow tip

Typical order:

  1. Curate and analyze with the core workflow vignette.
  2. Use illustrate() → plot() whenever you need to communicate structure to collaborators.

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.