BinaryTree
and mob
objects are rather
flexible and can be extended by panel functions. Some pre-defined
panel-generating functions of class grapcon_generator
for the most important cases are documented here.node_inner(ctreeobj, digits = 3, abbreviate = FALSE,
fill = "white", pval = TRUE, id = TRUE)
node_terminal(ctreeobj, digits = 3, abbreviate = FALSE,
fill = c("lightgray", "white"), id = TRUE)
edge_simple(treeobj, digits = 3, abbreviate = FALSE)
node_surv(ctreeobj, ylines = 2, id = TRUE, ...)
node_barplot(ctreeobj, col = "black", fill = NULL, beside = NULL,
ymax = NULL, ylines = NULL, widths = 1, gap = NULL,
reverse = NULL, id = TRUE)
node_boxplot(ctreeobj, col = "black", fill = "lightgray",
width = 0.5, yscale = NULL, ylines = 3, cex = 0.5, id = TRUE)
node_hist(ctreeobj, col = "black", fill = "lightgray",
freq = FALSE, horizontal = TRUE, xscale = NULL, ymax = NULL,
ylines = 3, id = TRUE, ...)
node_density(ctreeobj, col = "black", rug = TRUE,
horizontal = TRUE, xscale = NULL, yscale = NULL, ylines = 3,
id = TRUE)
node_scatterplot(mobobj, which = NULL, col = "black",
linecol = "red", cex = 0.5, pch = NULL, jitter = FALSE,
xscale = NULL, yscale = NULL, ylines = 1.5, id = TRUE,
labels = FALSE)
node_bivplot(mobobj, which = NULL, id = TRUE, pop = TRUE,
pointcol = "black", pointcex = 0.5,
boxcol = "black", boxwidth = 0.5, boxfill = "lightgray",
fitmean = TRUE, linecol = "red",
cdplot = FALSE, fivenum = TRUE, breaks = NULL,
ylines = NULL, xlab = FALSE, ylab = FALSE, margins = rep(1.5, 4), ...)
BinaryTree
.BinaryTree
or mob
.mob
.node_barplot
).TRUE
, the histogram graphic is a representation
of frequencies. If FALSE
, probabilities are plotted.NULL
(the default), the breaks
are chosen according to the fivenum
argument.FALSE
axis labels are surpressed, if TRUE
they are taken from the underlying data.
Can be a vector of labels for xlab
.plot
methods for BinaryTree
and mob
objects provide an
extensible framework for the visualization of binary regression trees. The
user is allowed to specify panel functions for plotting terminal and inner
nodes as well as the corresponding edges. The panel functions to be used
should depend only on the node being visualzied, however, for setting up
an appropriate panel function, information from the whole tree is typically
required. Hence, grapcon_generator
(graphical appearance control) from the node_inner
and edge_simple
return panel functions to draw inner nodes and left and right edges.
For drawing terminal nodes, the functions returned by the other panel
functions can be used. The panel generating function node_terminal
is a terse text-based representation of terminal nodes.Graphical representations of terminal nodes are available and depend on the kind of model and the measurement scale of the variables modelled.
For univariate regressions (typically fitted by ctree
),
node_surv
returns a functions that plots Kaplan-Meier curves in each
terminal node; node_barplot
, node_boxplot
, node_hist
and
node_density
can be used to plot bar plots, box plots, histograms and
estimated densities into the terminal nodes.
For multivariate regressions (typically fitted by mob
),
node_bivplot
returns a panel function that creates bivariate plots
of the response against all regressors in the model. Depending on the scale
of the variables involved, scatter plots, box plots, spinograms (or CD plots)
and spine plots are created. For the latter two spine
and
cd_plot
from the
set.seed(290875)
airq <- subset(airquality, !is.na(Ozone))
airct <- ctree(Ozone ~ ., data = airq)
## default: boxplots
plot(airct)
## change colors
plot(airct, tp_args = list(col = "blue", fill = hsv(2/3, 0.5, 1)))
## equivalent to
plot(airct, terminal_panel = node_boxplot(airct, col = "blue",
fill = hsv(2/3, 0.5, 1)))
### very simple; the mean is given in each terminal node
plot(airct, type = "simple")
### density estimates
plot(airct, terminal_panel = node_density)
### histograms
plot(airct, terminal_panel = node_hist(airct, ymax = 0.06,
xscale = c(0, 250)))
Run the code above in your browser using DataLab