首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在ggplot中将颜色显示为限制

在ggplot中将颜色显示为限制
EN

Stack Overflow用户
提问于 2016-04-12 15:42:20
回答 1查看 1.2K关注 0票数 1

我要绘制一个光栅,以便比例限制之外的值具有与比例限制本身相同的颜色。

代码语言:javascript
复制
# 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()选项:

代码语言:javascript
复制
oob=squish #This does not seem to exists anymore

代码语言:javascript
复制
oob=function(x, ...) x #does nothing

代码语言:javascript
复制
oob=clip #this does not work:
#Error in f(...) : argument "x2" is missing, with no default

如何将当前映射到NA的越界值与比例的限制值进行着色?在上面的示例中,值> 0.5应为蓝色,< -0.5应为红色。我知道我可以通过使用因子来剪切数据集来做到这一点,但我想要一个连续的色标。我也可以使用breaks来设置显示的限制,但我希望无论绘图内容如何都能显示全色标。如果可能的话,我也想避免对数据进行任何修改。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-12 16:02:56

oob = squish似乎不再工作的原因是ggplot2的一些功能已经转移到scales包中。请先加载scales,或者改为键入oob = scales::squish

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36566708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档