我有一个shapefile(多边形),我只想绘制其中的一部分,所以使用ggplot的geom_path我用xlim和ylim限制可见路径。 Shapefile是available here (2.5 MB)。
library(rgdal)
library(ggplot2)
coast <- readOGR(dsn=".", layer="coast-rgdal")
coast.df <- fortify(coast, region="STATE_NAME")
p <- ggplot(coast.df, aes(x=long, y=lat, group=group)) +
geom_path(colour="black", size=1/4) +
xlim(146, 148) + ylim(-39.25, -37.5) + coord_fixed()
p
看起来像这样:
我希望拥有的是封闭路径(使用gimp完成):
我可以用ggplot命令吗?还是R中的其他东西?
作为参考,完整的多边形如下所示:
答案 0 :(得分:3)
您可以使用gIntersection
包中的rgeos
来提取此区域:
library(rgdal)
library(ggplot2)
library(rgeos)
coast <- readOGR(dsn=".", layer="coast-rgdal")
lim <- cbind(c(146, 148, 148, 146, 146),
c(-39.25, -39.25, -37.5, -37.5, -39.25))
x <- SpatialPolygons(list(Polygons(list(Polygon(lim)), ID="1")))
proj4string(x) <- proj4string(coast)
res <- gIntersection(coast, x)
coast.df <- fortify(res)
p <- ggplot(coast.df, aes(x=long, y=lat, group=group)) +
geom_path(colour="black", size=1/4) +
xlim(146, 148) + ylim(-39.25, -37.5) + coord_fixed()
p