Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Remove strip background keep panel border

Tags:

r

ggplot2

I have the following type of plot and want to keep each strip text above the individual facet box as a "title" of sorts yet not have the default grey background and black border around the strip.background. I color it white which is close to what I want but would like the bottom edge of the strip.background or top edge of panel.border to be black.

enter image description here

library(ggplot2)  ggplot(mtcars, aes(mpg, hp)) + geom_point() +     facet_wrap(~carb, ncol = 3) + theme_bw() +     theme(panel.grid.major = element_blank(),         panel.grid.minor = element_blank(),         strip.background = element_rect(colour="white", fill="white"),         panel.border = element_rect(colour = "black")) 
like image 645
Tyler Rinker Avatar asked Jan 06 '13 19:01

Tyler Rinker


1 Answers

If you set element_blank() for strip.background and keep element_rect(colour="black", fill = NA) for panel.border then top edge of panel.border will be black. As pointed out by @adrien, for panel.background fill should be set to NA to avoid covering of points (already set as default for theme_bw()).

ggplot(mtcars, aes(mpg, hp)) + geom_point() +   facet_wrap(~carb, ncol = 3) + theme_bw() +   theme(panel.grid.major = element_blank(),         panel.grid.minor = element_blank(),         strip.background = element_blank(),         panel.border = element_rect(colour = "black", fill = NA)) 

enter image description here

like image 168
Didzis Elferts Avatar answered Sep 22 '22 21:09

Didzis Elferts