【发布时间】:2014-06-11 05:48:41
【问题描述】:
我需要创建一个带有多个光栅层的图形。这些层是二进制数据(0 和 1),而有些层只有一个值(0 或 1)。对于这些只有一个值的图层,图形无法正确显示。
例如,在下图中。第 3 层应为绿色。
#r1 <- raster(nrow=10, ncol=10)
r1[] <- sample(c(0,1),100,replace=TRUE)
tst <- ratify(r1[[1]])
rat <- levels(tst)[[1]]
rat$legend <- c("Absence","Presence")
levels(tst) <- rat
r1 <- ratify(r1)
levels(r1) <- rat
r2 <- raster(nrow=10, ncol=10)
r2[] <- 0
r2 <- ratify(r2)
levels(r2) <- rat
r3 <- raster(nrow=10, ncol=10)
r3[] <- 1
r3 <- ratify(r3)
levels(r3) <- rat
r4 <- raster(nrow=10, ncol=10)
r4[] <- sample(c(0,1),100,replace=TRUE)
r4 <- ratify(r4)
levels(r4) <- rat
r <- stack(r1,r2,r3,r4)
library(rasterVis)
levelplot(r,col.regions=c("grey","darkgreen"))
【问题讨论】:
-
我无法在我的机器(Linux,R 3.1)上重现您的错误。执行代码后,第 2 层为灰色,第 3 层为深绿色 - 正如预期的那样。也许您可以尝试将
zlim=c(0,1)添加到您的levelplot通话中。 -
我认为您使用的是旧版本的 rasterVis。最近修复了这个问题。您能尝试更新软件包吗?
-
感谢 @koekenbakker 我将 R 版本从 R 3.0.2 更新到 R 3.1,以及包“raster”和“rasterVis”。现在可以了。