Add Labelled Brackets to Group Predictors in a Dot-and-Whisker Plot

Share:

Description

add_brackets draws brackets along the y-axis beyond the plotting area of a dot-and-whisker plot generated by dwplot, useful for labelling groups of predictors

Usage

1
add_brackets(p, brackets, face = "italic")

Arguments

p

A dot-and-whisker plot generated by dwplot.

brackets

A list of brackets; each element of the list should be a character vector consisting of (1) a label for the bracket, (2) the name of the topmost variable to be enclosed by the bracket, and (3) the name of the bottommost variable to be enclosed by the bracket.

face

A typeface for the bracket labels; options are "plain", "bold", "italic", "oblique", and "bold.italic".

Value

The function returns a gtable object, which are viewed with grid.arrange.

To save, use ggsave.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
library(broom)
library(dplyr)

data(mtcars)
m1 <- lm(mpg ~ wt + cyl + disp, data = mtcars)
m1_df <- broom::tidy(m1) # create data.frame of regression results

p <- dwplot(m1_df, include_intercept = TRUE) +
   relabel_y_axis(c("Intercept", "Weight", "Cylinders", "Displacement")) +
   theme_bw() + xlab("Coefficient") + ylab("") +
   geom_vline(xintercept = 0, colour = "grey50", linetype = 2) +
   theme(legend.position="none")

two_brackets <- list(c("Engine", "cyl", "disp"), c("Not Engine", "(Intercept)", "wt"))

g <- p %>% add_brackets(two_brackets)

grid.arrange(g)  # to display

# to save (not run)
#ggsave(file = "plot.pdf", g)