Learn R Programming

bnlearn (version 4.7.1)

graphviz.chart: Plotting networks with probability bars

Description

Plot a Bayesian network as a graph whose nodes are barplots representing the marginal probability distributions of the corresponding variables. Requires the Rgraphviz and gRain packages.

Usage

graphviz.chart(x, type = "barchart", layout = "dot", draw.levels = TRUE,
  grid = FALSE, scale = c(0.75, 1.1), col = "black", bg = "transparent",
  text.col = "black", bar.col = "black", strip.bg = bg, main = NULL,
  sub = NULL)

Value

graphviz.chart() invisibly returns NULL.

Arguments

x

an object of class bn.fit representing a discrete Bayesian network.

type

a character string, the type of graph used to plot the probability distributions in the nodes. Possible values are barchart, dotplot and barprob (a barchart with probabilities printed over the bars).

layout

a character string, the layout argument that will be passed to Rgraphviz. Possible values are dots, neato, twopi, circo and fdp. See Rgraphviz documentation for details.

draw.levels

a boolean value, whether to print the labels of the levels of each variable.

grid

a boolean value, whether to draw to a reference grid for the probability distributions. If grid is TRUE, a vertical grid is drawn at probabilities c(0, 0.25, 0.50, 0.75). If grid is a numeric vector, a verical grid is drawn at the specified probabilities.

scale

a vector of two positive numbers, used by Rgraphviz to determine the size and the aspect ratio of the nodes.

col, bg, text.col, bar.col, strip.bg

the colours of the node border, of the barchart background, of the text, of the bars and of the strip background.

main

a character string, the main title of the graph. It's plotted at the top of the graph.

sub

a character string, a subtitle which is plotted at the bottom of the graph.

Author

Marco Scutari

Examples

Run this code
if (FALSE) {
modelstring = paste("[HIST|LVF][CVP|LVV][PCWP|LVV][HYP][LVV|HYP:LVF][LVF]",
  "[STKV|HYP:LVF][ERLO][HRBP|ERLO:HR][HREK|ERCA:HR][ERCA][HRSA|ERCA:HR][ANES]",
  "[APL][TPR|APL][ECO2|ACO2:VLNG][KINK][MINV|INT:VLNG][FIO2][PVS|FIO2:VALV]",
  "[SAO2|PVS:SHNT][PAP|PMB][PMB][SHNT|INT:PMB][INT][PRSS|INT:KINK:VTUB][DISC]",
  "[MVS][VMCH|MVS][VTUB|DISC:VMCH][VLNG|INT:KINK:VTUB][VALV|INT:VLNG][ACO2|VALV]",
  "[CCHL|ACO2:ANES:SAO2:TPR][HR|CCHL][CO|HR:STKV][BP|CO:TPR]", sep = "")
dag = model2network(modelstring)
fitted = bn.fit(dag, alarm)

# Netica style.
graphviz.chart(fitted, grid = TRUE, bg = "beige", bar.col = "black")
# Hugin style.
graphviz.chart(fitted, type = "barprob", grid = TRUE, bar.col = "green",
  strip.bg = "lightyellow")
# GeNIe style.
graphviz.chart(fitted, col = "darkblue", bg = "azure", bar.col = "darkblue")
# personal favourites.
graphviz.chart(fitted, type = "barprob", grid = TRUE, bar.col = "darkgreen",
  strip.bg = "lightskyblue")
graphviz.chart(fitted, type = "barprob", grid = TRUE, bar.col = "gold",
  strip.bg = "lightskyblue")
# dot-plot version.
graphviz.chart(fitted, type = "dotplot")
}

Run the code above in your browser using DataLab