我想并排绘制 7 个 TIFF 文件,gplot
并且我想在它们上面覆盖一个多边形层。我尝试使用读取 shapefile st_read
,然后使用geom_sf
orgeom_polygon
来绘制它。但它没有用。它抛出了一个关于aes
. 我终于使用了fortify
函数,然后用geom_path
它来绘制它。虽然它确实被覆盖了,但这不是我想要的。我只想覆盖多边形边界。
PS 我不知道如何创建可重现的栅格和矢量图层。因此,如果需要,我可以上传示例文件。
shp = fortify(shapefile("E:/Vect/BLOCKS.shp"))
rfiles = list.files(path = "E:/Rast", pattern = "*.tif", full.names = TRUE)
pfiles = stack(rfiles[c(7:14)])
plot1 = gplot(pfiles1) +
geom_tile(aes(fill = value)) +
geom_path(data=shp,aes(long, lat),colour="red") +
facet_wrap(~ variable, ncol = 7) +
scale_fill_gradientn(colours = magma(30), na.value = "transparent") +
theme_bw() +
theme(axis.text = element_blank(), legend.position = "right", legend.direction = "vertical",
legend.key.height = unit(5, "cm"), legend.key.width = unit(1, "cm"),
legend.title = element_blank(), legend.text = element_text(size = 30),
strip.text = element_text(size = 28, face = "bold")) +
coord_equal()