我有一个名为Watershed
的流域,其中包含33个子流域
。我无法编写可重现的代码来绘制该集水区的shapefile
文件,因此我附上了我的Shapefile文件。我有四个模型
,用于生成2005-2008
年的蒸散发(ET)
数据。我想使用ggplot
的faceting
功能比较每年四个模型的数据产品。我尝试了一些方法(请参见我的示例代码),但未能成功。我希望能够找到解决方法。
library(sf)
library(tidyverse)
shape <- read_sf(dsn = ".", layer = "Watershed")
ETM1 = data.frame(Subbasin = 1:33, Yr2005 = runif(33, 500,700), Yr2006 = runif(33, 600,750), Yr2007 = runif(33, 450,750),
Yr2008 = runif(33, 550,800), Model = rep("M1", 33))
ETM2 = data.frame(Subbasin = 1:33, Yr2005 = runif(33, 600,750), Yr2006 = runif(33, 550,750), Yr2007 = runif(33, 600,750),
Yr2008 = runif(33, 700,800), Model = rep("M2", 33))
ETM3 = data.frame(Subbasin = 1:33, Yr2005 = runif(33, 500,750), Yr2006 = runif(33, 650,750), Yr2007 = runif(33, 700,750),
Yr2008 = runif(33, 500,800), Model = rep("M3", 33))
ETM4 = data.frame(Subbasin = 1:33, Yr2005 = runif(33, 400,750), Yr2006 = runif(33, 450,750), Yr2007 = runif(33, 300,750),
Yr2008 = runif(33, 400,800), Model = rep("M4", 33))
ETData = rbind(ETM1,ETM2,ETM3,ETM4)
Combine = gather(ETData, key = "Variable", value = "Value", -c("Model","Subbasin"))
SpData = merge(shape, Combine, by='Subbasin')
ggplot() +
geom_polygon(SpData, aes(x = Lat, y = Long_, fill = Value))+
facet_wrap(~Model, nrow = 4, ncol = 4)
这是我使用 plot(shape$geometry)
绘制的形状文件图片。
我画了一张手绘的图,反映了我的最终目标——每个椭圆形(有点像)代表我的集水区形状文件,其中分成了子流域
。对于我糟糕的绘画,我深表歉意。