Я хотел бы создать гистограммы растровых значений для полигонов на основе различных комбинаций их атрибутов.Воспроизводимые данные ниже:
library(raster)
library(sp)
poly <- raster(nrow=10, ncol=10)
poly[] <- runif(ncell(poly)) * 10
poly <- rasterToPolygons(poly, fun=function(x){x > 9})
r <- raster(nrow=100, ncol=100)
r[] <- runif(ncell(r))
poly@data$place<-sample(letters[1:3], length(poly), TRUE)
poly@data$rank<-sample.int(3, length(poly), replace = TRUE)
plot(r)
plot(poly, add=TRUE, lwd=4)
v <- raster::extract(r, poly, df=TRUE)
Я могу построить гистограмму для всех идентификаторов (т.е. полигонов) в v
с ggplot
ggplot(v, aes(layer)) + geom_histogram(aes(y = stat(count / sum(count))), binwidth = 0.25)
Однако я бы хотел создать набор из трех гистограмм на основе атрибута rank
(т. Е. 1,2,3) и еще один набор из трех гистограмм на основе place
атрибут (то есть a, b, c).Возможно, используя facet
в ggplot, но я не уверен, как связать идентификаторы в v
с атрибутами в poly
.