使用 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