# Plot multiple coefplots

### Description

Plot the coeffcients from multiple models

### Usage

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | ```
multiplot(..., title = "Coefficient Plot", xlab = "Value",
ylab = "Coefficient", innerCI = 1, outerCI = 2, lwdInner = 1,
lwdOuter = 0, 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("right", "left", "bottom", "top", "none"),
secret.weapon = FALSE, legend.reverse = FALSE)
``` |

### Arguments

`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 seperate 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 constinuous 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 specfied. 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 coeffiecients to show will not be plotted |

`by` |
If "Coefficient" then anormal 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 |

`...` |
Models to be plotted |

### Details

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 wil 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.

### Value

A ggplot object

### See Also

`link{coefplot}`

### Examples

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | ```
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)
``` |