У меня есть Watershed
, который имеет 33 subbasins
. Я не смог придумать код для рисования воспроизводимого shapefile
для водосбора, поэтому я прилагаю свой Shapefile . У меня есть four models
, которые генерируют Evapotranspiration (ET)
данные за годы 2005-2008
. Я хотел бы сравнить четыре модели продуктов каждого года, используя функциональность 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)
Вот примерное figure
, который я хотел бы построить, хотя в нем всего 3 строки.
Я сделал фигуру (нарисованную от руки), которая отражает мою конечную цель - каждая овальная форма (своего рода) представляет мой Catchment shapefile
с делением как subbasins
. Я прошу прощения за мой плохой рисунок.