It might be even easier to use annotate() for this if you know the coordinates for which region you want to shade. I had some strange rendering problems when I tried to use geom_rect().
library(ggplot2)
data(mtcars)
ggplot(mtcars, aes(x = wt, y = mpg)) + geom_point() +
annotate("rect", xmin = 3, xmax = 4.2, ymin = 12, ymax = 21,
alpha = .2)
I know it's essentially the same thing; I just happened stumbled on this tidbit from here.