R:排除SpatialPolygonsDataFrame中的水体
R: Exclude water bodies in SpatialPolygonsDataFrame
我使用栅格包中的 getData 函数制作了一张荷兰地图。 getData 函数下载世界任何地方的地理数据。下载的数据为class"SpatialPolygonsDataFrame"。
我想用浅灰色填充地图的陆地区域,但是当我尝试填充地图的颜色时,陆地和水域都被填充了颜色。有几个水域与水坝、土地等接壤,它们也有颜色。
这是我创建地图的方式:
library(raster) #requires sp package
library(ggplot2)
#Download shapefile data for The Netherlands
Neth<-getData("GADM", country="NL", level=1)
#Set general theme options for the ggplot
theme_opts<-list(theme(panel.grid.minor = element_blank(),
panel.grid.major = element_blank(),
panel.background = element_blank(),
plot.background = element_blank(),
axis.line = element_blank(),
axis.text.x = element_blank(),
axis.text.y = element_blank(),
axis.ticks = element_blank(),
axis.title.x = element_blank(),
axis.title.y = element_blank(),
plot.title = element_blank()))
#Plot map of The Netherlands
ggplot() +
geom_polygon(data=Neth, aes(long,lat,group=group), fill="whitesmoke")+
geom_path(data=Neth, aes(long,lat, group=group), color="black",
size=0.3) +
theme(aspect.ratio=1) + theme_opts
这是我的地图图片,我添加了文字 "Water" 以显示一些水体:
感谢任何帮助。
更新:
我只保留地图中省份的多边形就解决了这个问题:
#Only grab provinces
Neth <- Neth[Neth$TYPE_1 == "Province",]
#Plot map of The Netherlands
ggplot() +
geom_polygon(data=Neth, aes(long,lat,group=group), fill="whitesmoke")+
geom_path(data=Neth, aes(long,lat, group=group), color="black",
size=0.3) +
theme(aspect.ratio=1) + theme_opts
我使用栅格包中的 getData 函数制作了一张荷兰地图。 getData 函数下载世界任何地方的地理数据。下载的数据为class"SpatialPolygonsDataFrame"。
我想用浅灰色填充地图的陆地区域,但是当我尝试填充地图的颜色时,陆地和水域都被填充了颜色。有几个水域与水坝、土地等接壤,它们也有颜色。
这是我创建地图的方式:
library(raster) #requires sp package
library(ggplot2)
#Download shapefile data for The Netherlands
Neth<-getData("GADM", country="NL", level=1)
#Set general theme options for the ggplot
theme_opts<-list(theme(panel.grid.minor = element_blank(),
panel.grid.major = element_blank(),
panel.background = element_blank(),
plot.background = element_blank(),
axis.line = element_blank(),
axis.text.x = element_blank(),
axis.text.y = element_blank(),
axis.ticks = element_blank(),
axis.title.x = element_blank(),
axis.title.y = element_blank(),
plot.title = element_blank()))
#Plot map of The Netherlands
ggplot() +
geom_polygon(data=Neth, aes(long,lat,group=group), fill="whitesmoke")+
geom_path(data=Neth, aes(long,lat, group=group), color="black",
size=0.3) +
theme(aspect.ratio=1) + theme_opts
这是我的地图图片,我添加了文字 "Water" 以显示一些水体:
更新:
我只保留地图中省份的多边形就解决了这个问题:
#Only grab provinces
Neth <- Neth[Neth$TYPE_1 == "Province",]
#Plot map of The Netherlands
ggplot() +
geom_polygon(data=Neth, aes(long,lat,group=group), fill="whitesmoke")+
geom_path(data=Neth, aes(long,lat, group=group), color="black",
size=0.3) +
theme(aspect.ratio=1) + theme_opts