1

merge我正在尝试将 .csv 文件中每个国家/地区的数据(“prop”)关联到 .shp 文件中的每个相应多边形,但是,在我尝试该功能后,多边形无法正确映射。

首先,我使用 .shp 文件中的 3 个字母国家代码分割创建多边形fortify...

gpclibPermit()
worldmapDf<- fortify(worldmap, region="ISO_3_CODE")

然后我尝试关联 .csv 文件中的“prop”数据,与 3 个字母的国家代码列(在本例中为“code”)匹配。

forestareamap <- merge(worldmapDf, forestarea, by.x="id", by.y="code")

然后我尝试绘制它...

ggplot(forestareamap)+aes(long,lat,group=group,fill=prop)+geom_polygon()

而这种情况发生...

在此处输入图像描述

显然,多边形的绘制顺序不正确,但我不确定如何正确排序。

在 fortify 生成正确的多边形之后直接绘制数据,因此合并功能出了点问题。作为一个完整的菜鸟,我不知道...

4

1 回答 1

6

我的数据也有类似的问题。合并与排序混乱,导致此问题。尝试:

forestareamap <- forestareamap[order(forestareamap$order),] 
ggplot(forestareamap)+aes(long,lat,group=group,fill=prop)+geom_polygon()

这应该使一切恢复正确的顺序。

于 2013-07-16T17:57:00.380 回答