0

我想并排绘制 7 个 TIFF 文件,gplot并且我想在它们上面覆盖一个多边形层。我尝试使用读取 shapefile st_read,然后使用geom_sforgeom_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() 

在此处输入图像描述

4

1 回答 1

0

只是一个小小的改变。加入group = group_geom_path

geom_path(data=shp,aes(long, lat, group = group),colour="red")

于 2021-08-22T05:51:46.043 回答