rggplot2

In ggplot2, how can I change the border of selected facets?


Taking the graph from ggplot2 help pages:

ggplot(mtcars, aes(factor(cyl))) + geom_bar() + facet_grid(. ~ vs)

Is it possible to change the border (colour and/or thickness) of only selected panels? I'd like to, for instance, change the border of the facet of '1' of faceting variable vs.

I tried adding

theme(panel.border = element_rect(size = 3, colour = "red", fill = NA))

but that solution changes all borders.

I was also thinking about using geom_rect or geom_polygon but am not sure how to limit it to one plot either.

I stumbled upon this thread on R help list, but the solutions didn't work for me

Any suggestions on how to move forward will be much appreciated.


Solution

  • How about filling it with a colour like this?

    dd <- data.frame(vs = c(0,1), ff = factor(0:1))
    ggplot() + geom_rect(data=dd, aes(fill=ff), 
        xmin=-Inf, xmax=Inf, ymin=-Inf, ymax=Inf, alpha=0.15) + 
        geom_bar(data = mtcars, aes(factor(cyl))) + facet_grid(. ~ vs) + 
        scale_fill_manual(values=c(NA, "red"), breaks=NULL)
    

    enter image description here