光栅颜色 - 正红色&负蓝色

时间:2014-04-25 13:49:18

标签: r colors raster

我在R中创建了一个具有正值和负值的空间栅格。我希望所有正值都是红色渐变,而所有负值都是蓝色渐变。基本上我想定义我自己的颜色渐变,零为空白,正值为红色,负值为蓝色(这些可以是任何颜色)。 R中的大多数颜色渐变在最小值之间传播所有可用颜色。最多值。

我似乎无法找到解决方案,所以希望有人在这里有建议。

以下是一个值为-5到5的栅格的示例,我需要一个“新的”col定义:

library(raster)
set.seed(9)
r <- raster(ncol=10, nrow=10)
r1 <- setValues(r, (1:ncell(r))/10 + rnorm(ncell(r)) - 5)
plot(r1, col= topo.colors(12))

最佳 - 尼尔斯

1 个答案:

答案 0 :(得分:0)

我找不到比添加公差更优雅的方式,因为如果你有更优雅的方式,颜色应该被赋予一个段而不是一个点(例如0),请继续

library(raster)
set.seed(9)
r <- raster(ncol=10, nrow=10)
r1 <- setValues(r, (1:ncell(r))/10 + rnorm(ncell(r)) - 5)
tol=10^-12
breakpoints <- c(min(as.data.frame(r1)),0-tol,0+tol,max(as.data.frame(r1)))
colors <- c("blue","white","red")
r1.range <- c(minValue(r1), maxValue(r1))
plot(r1,breaks=breakpoints,col=colors,     axis.args=list(at=c(r1.range[1], 0,r1.range[2])))

仅需要axis.args参数使图例看起来不错,如果它看起来很可怕,你可以把它带走。

this

来源:

https://gis.stackexchange.com/questions/17339/raster-legend-in-r-how-to-colour-specific-values

应该解决你的问题。