绘制“布尔”栅格并将NA值添加到图例中

问题描述 投票:0回答:1

我有一个值为1NA的栅格。默认情况下,plot(raster_1)调用会为我提供连续的图例。我真正想要的是一个带有两个条目和两个颜色的简单分类图例。一个是1,另一个是NA。我使用as.factor(raster_1)将栅格转换为分类对象。但是现在我不知道如何生成这个简单的图例...我的栅格值看起来像这样:

source     : memory
names      : raster_1 
values     : 1, 1  (min, max)
attributes :
 ID
  1
r plot legend raster na
1个回答
0
投票

设置legend=FALSEcolNA而不是对plot的调用中默认的“透明”,然后添加一个自定义legend,您可以在其中设置xpd=TRUE,因此图例可以放置在绘图边距之外。您可以在inset = c(-0.3,0)]的通话中根据自己的喜好调整legend

r <- raster(ncol=10, nrow=10, xmx=-80, xmn=-150, ymn=20, ymx=60) #toy raster
values(r) <- c(rep(1, 30), rep(NA, 30), rep(1, 40)) #add 1 and NA values
r
#class      : RasterLayer 
#dimensions : 10, 10, 100  (nrow, ncol, ncell)
#resolution : 7, 4  (x, y)
#extent     : -150, -80, 20, 60  (xmin, xmax, ymin, ymax)
#crs        : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0 
#source     : memory
#names      : layer 
#values     : 1, 1  (min, max)
plot(r, col='red', colNA='black', legend=FALSE)
legend('topright', legend = c('1', 'NA'), pch=15, col=c('red', 'black'), inset = c(-0.3,0), xpd = TRUE)

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.