我正在尝试将.csv文件中每个国家/地区('prop')的数据与.shp文件中的每个相应多边形相关联,但是,在尝试merge
函数后,多边形无法正确映射
首先,我使用fortify
创建多边形,并按.shp文件中的3个字母的国家/地区代码进行拆分......
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之后直接绘制数据会生成正确的多边形,因此合并函数会出现问题。作为一个完整的新秀,我不知道......
答案 0 :(得分:3)
我的数据存在类似问题。合并混乱,导致这个问题。尝试:
forestareamap <- forestareamap[order(forestareamap$order),]
ggplot(forestareamap)+aes(long,lat,group=group,fill=prop)+geom_polygon()
这应该以正确的顺序放回一切。