如何保持只有颜色中断以隔离零以下零点以上的值?

时间:2013-12-18 09:53:43

标签: r plot raster

我想绘制一个矩阵,但是在图例

中继续使用颜色没有中断
       library(colorRamps) 
       library(raster) 
       set.seed(1)
       library(raster)
       r <- raster(nrows=5, ncols=5)
       r <- setValues(r, 1:ncell(r))
      plot(r, col =  matlab.like(8)

这种产品 enter image description here

正如您所看到的那样,图例中的颜色会中断。我想使用相同的颜色,但没有休息,但只保留一个将橙色和红色与浅蓝色和蓝色分开的中断请帮忙(在本例中它在10到15之间)。我的实际值介于-1和+1之间,所以我想把它放在零点。零红毛猩猩,红色等等。零以下浅蓝色,蓝色等。谢谢

1 个答案:

答案 0 :(得分:1)

听起来想要混合连续和离散的音阶,例如,具有嵌入两个连续音阶的离散音阶。我不知道在R中这样做的方法。但是只需将最后一行代码更改为

plot(r, col =  matlab.like(25)

创造了非常接近的东西:

使用ggplot,您可以更灵活地定义比例,但仍然无法将离散和连续组合起来。

library(ggplot2)
library(colorRamps)

x    <- seq(-1,1,len=5)
y    <- seq(-1,1,len=5)
gg   <- expand.grid(x=x,y=-y)
gg$z <- seq(-1,1,len=25)
ggplot(gg) + 
  geom_raster(aes(x=x,y=y,fill=z))+
  scale_fill_gradientn(colours=matlab.like(25), breaks=c(-1,0,1))