使用scale_中的限制时,为超出范围的值删除灰色填充

问题描述 投票:4回答:1

我正在将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))
r ggplot2 limit
1个回答
6
投票

将参数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")

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS80NTRRVy5wbmcifQ==” alt =“在此处输入图像描述”>“ >>

© www.soinside.com 2019 - 2024. All rights reserved.