使用 ggplot2 绘制多边形 shapefile 会混淆多边形
Plotting polygon shapefile with ggplot2 jumbles up the polygons
我有一个多边形形状文件,其中包含两个不同地区的村庄多边形。当我使用基本包
绘制它时
plot(shp_test,axes=T)
我得到下图:
但是,当我尝试使用 ggplot2 绘制时,
shp_fort<-fortify(shp_test)
ggplot() + geom_polygon(aes(x=long, y=lat), data=shp_fort, fill="red", alpha=.5)
我观察到以下结果。
有人可以解释这里发生了什么以及如何解决这个问题。
我没有在这里分享shapefile,因为它是一个大数据集。但是,如果仍然需要,请 post 发表评论,我也会分享 shapefile。
如 johannes 所述,您应该使用 group
美学并将其传递给元素的 id
:
ggplot() + geom_polygon(aes(x=long, y=lat, group=id), data=shp_fort, fill="red", alpha=.5)
在 ggplot2 页面的 this example 中,它们表示在使用 geom_polygon
时需要使用这样的 id
(强调我的):
# When using geom_polygon, you will typically need two data frames:
# one contains the coordinates of each polygon (positions), and the
# other the values associated with each polygon (values). An id
# variable links the two together
我有一个多边形形状文件,其中包含两个不同地区的村庄多边形。当我使用基本包
绘制它时plot(shp_test,axes=T)
我得到下图:
但是,当我尝试使用 ggplot2 绘制时,
shp_fort<-fortify(shp_test)
ggplot() + geom_polygon(aes(x=long, y=lat), data=shp_fort, fill="red", alpha=.5)
我观察到以下结果。
有人可以解释这里发生了什么以及如何解决这个问题。
我没有在这里分享shapefile,因为它是一个大数据集。但是,如果仍然需要,请 post 发表评论,我也会分享 shapefile。
如 johannes group
美学并将其传递给元素的 id
:
ggplot() + geom_polygon(aes(x=long, y=lat, group=id), data=shp_fort, fill="red", alpha=.5)
在 ggplot2 页面的 this example 中,它们表示在使用 geom_polygon
时需要使用这样的 id
(强调我的):
# When using geom_polygon, you will typically need two data frames:
# one contains the coordinates of each polygon (positions), and the
# other the values associated with each polygon (values). An id
# variable links the two together