multiplot | R Documentation |
Plot the coefficients from multiple models
multiplot( ..., title = "Coefficient Plot", xlab = "Value", ylab = "Coefficient", innerCI = 1, outerCI = 2, lwdInner = 1, lwdOuter = (Sys.info()["sysname"] != "Windows") * 0.5, pointSize = 3, dodgeHeight = 1, color = "blue", shape = 16, linetype = 1, cex = 0.8, textAngle = 0, numberAngle = 90, zeroColor = "grey", zeroLWD = 1, zeroType = 2, single = TRUE, scales = "fixed", ncol = length(unique(modelCI$Model)), sort = c("natural", "normal", "magnitude", "size", "alphabetical"), decreasing = FALSE, names = NULL, numeric = FALSE, fillColor = "grey", alpha = 1/2, horizontal = FALSE, factors = NULL, only = NULL, shorten = TRUE, intercept = TRUE, interceptName = "(Intercept)", coefficients = NULL, predictors = NULL, strict = FALSE, newNames = NULL, plot = TRUE, drop = FALSE, by = c("Coefficient", "Model"), plot.shapes = FALSE, plot.linetypes = FALSE, legend.position = c("bottom", "right", "left", "top", "none"), secret.weapon = FALSE, legend.reverse = FALSE, trans = identity )
... |
Models to be plotted |
title |
The name of the plot, if NULL then no name is given |
xlab |
The x label |
ylab |
The y label |
innerCI |
How wide the inner confidence interval should be, normally 1 standard deviation. If 0, then there will be no inner confidence interval. |
outerCI |
How wide the outer confidence interval should be, normally 2 standard deviations. If 0, then there will be no outer confidence interval. |
lwdInner |
The thickness of the inner confidence interval |
lwdOuter |
The thickness of the outer confidence interval |
pointSize |
Size of coefficient point |
dodgeHeight |
Amount of vertical dodging |
color |
The color of the points and lines |
shape |
The shape of the points |
linetype |
The type of line drawn for the standard errors |
cex |
The text size multiplier, currently not used |
textAngle |
The angle for the coefficient labels, 0 is horizontal |
numberAngle |
The angle for the value labels, 0 is horizontal |
zeroColor |
The color of the line indicating 0 |
zeroLWD |
The thickness of the 0 line |
zeroType |
The type of 0 line, 0 will mean no line |
single |
logical; If TRUE there will be one plot with the points and bars stacked, otherwise the models will be displayed in separate facets |
scales |
The way the axes should be treated in a faceted plot. Can be c("fixed", "free", "free_x", "free_y") |
ncol |
The number of columns that the models should be plotted in |
sort |
Determines the sort order of the coefficients. Possible values are c("natural", "magnitude", "alphabetical") |
decreasing |
logical; Whether the coefficients should be ascending or descending |
names |
Names for models, if NULL then they will be named after their inputs |
numeric |
logical; If true and factors has exactly one value, then it is displayed in a horizontal graph with continuous confidence bounds. |
fillColor |
The color of the confidence bounds for a numeric factor |
alpha |
The transparency level of the numeric factor's confidence bound |
horizontal |
logical; If the plot should be displayed horizontally |
factors |
Vector of factor variables that will be the only ones shown |
only |
logical; If factors has a value this determines how interactions are treated. True means just that variable will be shown and not its interactions. False means interactions will be included. |
shorten |
logical or character; If |
intercept |
logical; Whether the Intercept coefficient should be plotted |
interceptName |
Specifies name of intercept it case it is not the default of "(Intercept"). |
coefficients |
A character vector specifying which factor coefficients to keep. It will keep all levels and any interactions, even if those are not listed. |
predictors |
A character vector specifying which coefficients to keep. Each individual coefficient can be specified. Use predictors to specify entire factors |
strict |
If TRUE then predictors will only be matched to its own coefficients, not its interactions |
newNames |
Named character vector of new names for coefficients |
plot |
logical; If the plot should be drawn, if false then a data.frame of the values will be returned |
drop |
logical; if TRUE then models without valid coefficients to show will not be plotted |
by |
If "Coefficient" then a normal multiplot is plotted, if "Model" then the coefficients are plotted along the axis with one for each model. If plotting by model only one coefficient at a time can be selected. This is called the secret weapon by Andy Gelman. |
plot.shapes |
If |
plot.linetypes |
If |
legend.position |
position of legend, one of "left", "right", "bottom", "top", "none" |
secret.weapon |
If this is |
legend.reverse |
Setting to reverse the legend in a multiplot so that it matches the order they are drawn in the plot |
trans |
A transformation function to apply to the values and confidence intervals. |
Plots a graph similar to coefplot
but for multiple plots at once.
For now, if names
is provided the plots will appear in alphabetical order of the names. This will be adjusted in future iterations. When setting by
to "Model" and specifying exactly one variable in variables
that one coefficient will be plotted repeatedly with the axis labeled by model. This is Andy Gelman's secret weapon.
A ggplot object
link{coefplot}
data(diamonds) model1 <- lm(price ~ carat + cut, data=diamonds) model2 <- lm(price ~ carat + cut + color, data=diamonds) model3 <- lm(price ~ carat + color, data=diamonds) multiplot(model1, model2, model3) multiplot(model1, model2, model3, single=FALSE) multiplot(model1, model2, model3, plot=FALSE) require(reshape2) data(tips, package="reshape2") mod1 <- lm(tip ~ total_bill + sex, data=tips) mod2 <- lm(tip ~ total_bill * sex, data=tips) mod3 <- lm(tip ~ total_bill * sex * day, data=tips) mod7 <- lm(tip ~ total_bill + day + time, data=tips) multiplot(mod1, mod2, mod3, mod7, single=FALSE, scales="free_x") multiplot(mod1, mod2, mod3, mod7, single=FALSE, scales="free_x") multiplot(mod1, mod2, mod3, mod7, single=FALSE, scales="free_x", plot.shapes=TRUE) multiplot(mod1, mod2, mod3, mod7, single=TRUE, scales="free_x", plot.shapes=TRUE, plot.linetypes=TRUE) multiplot(mod1, mod2, mod3, mod7, single=TRUE, scales="free_x", plot.shapes=FALSE, plot.linetypes=TRUE, legend.position="bottom") # the secret weapon multiplot(mod1, mod2, mod3, mod7, coefficients="total_bill", secret.weapon=TRUE) # horizontal secret weapon multiplot(mod1, mod2, mod3, mod7, coefficients="total_bill", by="Model", horizontal=FALSE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.