在ggplot2中使用限制函数geom_tile时如何摆脱灰色背景

Nie*_*sen 3 limits r ggplot2

我使用R(3.0.1)和ggplot2(ggplot2_0.9.3.1)geom_tilescale_fill_gradient.我正在使用' limits'选项scale_fill_gradient,如下所示.问题是我想摆脱出现在指定限制之外的灰色背景.我希望那个背景是白色的,就像图表的其余部分一样theme_bw().我一直无法弄清楚如何做到这一点.谢谢.

 pp <- function (n,r=4) {
 x <- seq(-r*pi, r*pi, len=n)
 df <- expand.grid(x=x, y=x)
 df$r <- sqrt(df$x^2 + df$y^2)
 df$z <- cos(df$r^2)*exp(-df$r/6)
 df
}

 p <- ggplot(pp(20), aes(x=x,y=y))
 p + theme_bw() + geom_tile(aes(fill=z)) + scale_fill_gradient(low="green", high="red", limits=c(-0.1, 0.1))
Run Code Online (Sandbox Code Playgroud)

Dav*_*son 5

将参数添加na.value="transparent"scale_fill_gradient:

p + theme_bw() + geom_tile(aes(fill=z)) +
     scale_fill_gradient(low="green", high="red",
                         limits=c(-0.1, 0.1), na.value="transparent")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述