Составьте «логический» растр и добавьте NA-значения в легенду - PullRequest
0 голосов
/ 14 января 2020

У меня есть растр со значениями 1 или NA. По умолчанию plot(raster_1) -call дает мне непрерывную легенду. Что я на самом деле хочу, так это простая категориальная легенда с двумя записями и цветами. Одно существо 1 другое NA. Я преобразовал свой растр в категориальный объект с as.factor(raster_1). Но теперь я не знаю, как я могу создать эту простую легенду ... Мои растровые значения выглядят так:

source     : memory
names      : raster_1 
values     : 1, 1  (min, max)
attributes :
 ID
  1

1 Ответ

1 голос
/ 14 января 2020

Установите legend=FALSE и colNA, отличные от «прозрачного» по умолчанию в вызове на 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

...