我要绘制一个光栅,以便比例限制之外的值具有与比例限制本身相同的颜色。
# Generate data
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
}
pp200 <- pp(200)
ggplot(pp200, aes(x, y, fill = z)) +
geom_raster() +
scale_fill_gradient2(limits=c(-0.5, 0.5))
结果:
所有越界的值都是grey50
(na.value
)!
我也尝试过scale_fill_gradient2()
选项:
oob=squish #This does not seem to exists anymore
和
oob=function(x, ...) x #does nothing
和
oob=clip #this does not work:
#Error in f(...) : argument "x2" is missing, with no default
如何将当前映射到NA
的越界值与比例的限制值进行着色?在上面的示例中,值> 0.5
应为蓝色,< -0.5
应为红色。我知道我可以通过使用因子来剪切数据集来做到这一点,但我想要一个连续的色标。我也可以使用breaks来设置显示的限制,但我希望无论绘图内容如何都能显示全色标。如果可能的话,我也想避免对数据进行任何修改。
发布于 2016-04-12 16:02:56
oob = squish
似乎不再工作的原因是ggplot2
的一些功能已经转移到scales
包中。请先加载scales
,或者改为键入oob = scales::squish
。
https://stackoverflow.com/questions/36566708
复制相似问题