你也许可以避免diverge0
为此,而不是定义你的中断向量并让levelplot
照顾好剩下的。
library(rasterVis)
您可以手动定义中断:
b <- c(-10.289, -8, -4, -2, -1, 0, 1, 2, 4, 8, 16, 20.578)
或自动化它:
rng <- range(cellStats(s, range))
lim <- ceiling(log(abs(rng), 2))
b <- sort(c(0, unique(unlist(mapply(function(x, y) y*2^(0:x), lim, sign(rng))))))
b[1] <- rng[1]
b[length(b)] <- rng[2]
然后将休息时间传递给at
,以及勾选位置/标签colorkey$labels
:
p <- levelplot(s, par.settings=RdBuTheme(), at=b,
colorkey=list(height=0.8, labels=list(at=b, labels=round(b, 2))))
p