我想在R中绘制raster
个对象时,将颜色条标签与地图中的颜色相匹配。
假设我有以下栅格:
library(raster)
r <- raster(matrix(runif(100), ncol=10))
和另一个栅格:
r2 <- r/2
brks <- seq(0, 1, by=0.1)
nb <- length(brks)-1
cols <- rev(terrain.colors(nb))
par(mfrow=c(1,2))
plot(r, breaks=brks, col=cols, lab.breaks=brks, zlim=c(0,1), main='first')
plot(r2, breaks=brks, col=cols, lab.breaks=brks, zlim=c(0,1), main='second')
问题:
如果我绘图:
plot(r, add=TRUE, legend=FALSE, axes=FALSE, lab.breaks=brks,
zlim=c(0,1), main='first',
col=colorRampPalette(c("darkred", "red3", "orange", "gold1", "yellow",
"lightskyblue","steelblue3", "royalblue3",
"darkblue","darkblue"))(255))
然后打算绘制r2
,我知道:
breaks <- seq(min(minValue(r)), max(maxValue(r))))
如何定义r
和r2
的值,使其与上面col
定义的颜色相匹配?
请使用相同的颜色条比例绘制r
和r2
,并指定选择的值以匹配地图上的这些颜色。地图上的值不一定是分配给颜色条的值。
我需要这种练习,因为我正在对站数据进行插值。克里金提供了一个漂亮的栅格,但低估了这些值。但是,我有我映射的数据的最大值和最小值。使用上面col
中的颜色,我想根据地图上的颜色为颜色栏指定值。
非常感谢, 一首歌。