[fbf06f]: / partyMod / man / panelfunctions.Rd

Download this file

169 lines (153 with data), 7.8 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
\name{Panel Generating Functions}
\encoding{latin1}
\alias{node_inner}
\alias{node_terminal}
\alias{edge_simple}
\alias{node_surv}
\alias{node_barplot}
\alias{node_boxplot}
\alias{node_hist}
\alias{node_density}
\alias{node_scatterplot}
\alias{node_bivplot}
\title{ Panel-Generators for Visualization of Party Trees }
\description{
The plot method for \code{BinaryTree} and \code{mob} objects are rather
flexible and can be extended by panel functions. Some pre-defined
panel-generating functions of class \code{grapcon_generator}
for the most important cases are documented here.
}
\usage{
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, \dots)
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, \dots)
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), \dots)
}
\arguments{
\item{ctreeobj}{ an object of class \code{BinaryTree}.}
\item{treeobj}{ an object of class \code{BinaryTree} or \code{mob}.}
\item{mobobj}{ an object of class \code{mob}.}
\item{digits}{ integer, used for formating numbers. }
\item{abbreviate}{ logical indicating whether strings should be
abbreviated. }
\item{col, pointcol}{ a color for points and lines. }
\item{fill}{ a color to filling rectangles. }
\item{pval}{ logical. Should p values be plotted?}
\item{id}{ logical. Should node IDs be plotted?}
\item{ylines}{ number of lines for spaces in y-direction. }
\item{widths}{ widths in barplots. }
\item{width, boxwidth}{ width in boxplots. }
\item{gap}{ gap between bars in a barplot (\code{node_barplot}). }
\item{yscale}{ limits in y-direction}
\item{xscale}{ limits in x-direction}
\item{ymax}{ upper limit in y-direction}
\item{beside}{ logical indicating if barplots should be side by side or stacked. }
\item{reverse}{logical indicating whether the order of levels should be reversed
for barplots.}
\item{horizontal}{ logical indicating if the plots should be horizontal. }
\item{freq}{logical; if \code{TRUE}, the histogram graphic is a representation
of frequencies. If \code{FALSE}, probabilities are plotted.}
\item{rug}{logical indicating if a rug representation should be added. }
\item{which}{ numeric or character vector indicating which of the regressor
variables should be plotted (default = all).}
\item{linecol}{ color for fitted model lines.}
\item{cex, pointcex}{character extension of points in scatter plots.}
\item{pch}{plotting character of points in scatter plots.}
\item{jitter}{logical. Should the points be jittered in y-direction?}
\item{labels}{logical. Should axis labels be plotted?}
\item{pop}{logical. Should the panel viewports be popped?}
\item{boxcol}{color for box plot borders.}
\item{boxfill}{fill color for box plots.}
\item{fitmean}{logical. Should lines for the predicted means from the model
be added?}
\item{cdplot}{logical. Should CD plots (or spinograms) be used for visualizing
the dependence of a categorical on a numeric variable?}
\item{fivenum}{logical. When using spinograms, should the five point summary
of the explanatory variable be used for determining the breaks?}
\item{breaks}{a (list of) numeric vector(s) of breaks for the spinograms. If set to \code{NULL}
(the default), the \code{breaks} are chosen according to the \code{fivenum}
argument.}
\item{xlab, ylab}{ character with x- and y-axis labels. Can also be logical: if \code{FALSE}
axis labels are surpressed, if \code{TRUE} they are taken from the underlying data.
Can be a vector of labels for \code{xlab}. }
\item{margins}{margins of the viewports.}
\item{\dots}{ additional arguments passed to callies.}
}
\details{
The \code{plot} methods for \code{BinaryTree} and \code{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, \pkg{party} adopts the framework of \code{grapcon_generator}
(graphical appearance control) from the \pkg{vcd} package (Meyer, Zeileis and
Hornik, 2005) and provides several panel-generating functions. For convenience,
the panel-generating functions \code{node_inner} and \code{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 \code{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 \code{ctree}),
\code{node_surv} returns a functions that plots Kaplan-Meier curves in each
terminal node; \code{node_barplot}, \code{node_boxplot}, \code{node_hist} and
\code{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 \code{mob}),
\code{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 \code{\link[vcd]{spine}} and
\code{\link[vcd]{cd_plot}} from the \pkg{vcd} package are re-used.
}
\references{
David Meyer, Achim Zeileis, and Kurt Hornik (2006).
The Strucplot Framework: Visualizing Multi-Way Contingency Tables with vcd.
\emph{Journal of Statistical Software}, \bold{17}(3).
\url{http://www.jstatsoft.org/v17/i03/}
}
\examples{
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)))
}
\keyword{hplot}