gpt4 book ai didi

r - fortify()之后如何从shapefile中保留信息

转载 作者:行者123 更新时间:2023-12-03 21:38:34 25 4
gpt4 key购买 nike

在shapefile之后如何保存多边形的信息?让我尝试解释一下:

我有一个shapefile包含以下数据:

> head(mapa@data)
ID CD_GEOCODI TIPO CD_GEOCODB NM_BAIRRO CD_GEOCODS NM_SUBDIST CD_GEOCODD NM_DISTRIT CD_GEOCODM NM_MUNICIP NM_MICRO NM_MESO
12228 33679 431490205000133 URBANO 431490205003 Cidade Baixa 43149020500 <NA> 431490205 PORTO ALEGRE 4314902 PORTO ALEGRE PORTO ALEGRE METROPOLITANA DE PORTO ALEGRE
12229 33680 431490205000134 URBANO 431490205003 Cidade Baixa 43149020500 <NA> 431490205 PORTO ALEGRE 4314902 PORTO ALEGRE PORTO ALEGRE METROPOLITANA DE PORTO ALEGRE
12230 33681 431490205000135 URBANO 431490205003 Cidade Baixa 43149020500 <NA> 431490205 PORTO ALEGRE 4314902 PORTO ALEGRE PORTO ALEGRE METROPOLITANA DE PORTO ALEGRE
12231 33682 431490205000136 URBANO 431490205003 Cidade Baixa 43149020500 <NA> 431490205 PORTO ALEGRE 4314902 PORTO ALEGRE PORTO ALEGRE METROPOLITANA DE PORTO ALEGRE
12232 33683 431490205000137 URBANO 431490205003 Cidade Baixa 43149020500 <NA> 431490205 PORTO ALEGRE 4314902 PORTO ALEGRE PORTO ALEGRE METROPOLITANA DE PORTO ALEGRE
12233 33684 431490205000138 URBANO 431490205003 Cidade Baixa 43149020500 <NA> 431490205 PORTO ALEGRE 4314902 PORTO ALEGRE PORTO ALEGRE METROPOLITANA DE PORTO ALEGRE


和这个数据:

> head(data)
CD_GEOCODI Population
1 431490205000133 1272
2 431490205000134 822
3 431490205000135 1085
4 431490205000136 1454
5 431490205000137 964
6 431490205000138 834


我可以只合并 datamapa@data并用 plot()对其进行绘制,但是我想使用ggplot2。但是 fortify()的输出没有任何原始变量。例如:

> head(fortify(mapa))
Regions defined for each Polygons
long lat order hole piece group id
1 -51.22254 -30.03526 1 FALSE 1 12228.1 12228
2 -51.22332 -30.03648 2 FALSE 1 12228.1 12228
3 -51.22365 -30.03702 3 FALSE 1 12228.1 12228
4 -51.22482 -30.03610 4 FALSE 1 12228.1 12228
5 -51.22488 -30.03606 5 FALSE 1 12228.1 12228
6 -51.22476 -30.03591 6 FALSE 1 12228.1 12228


两者(fortify和mapa @ data)都有一个id变量,但值不相同。因此,我的问题再次是:如何将 mapa@data的信息传递到 fortify()的输出(或另一个允许使用ggplot2的函数)

最佳答案

由于您未提供shapefile或数据,因此无法进行测试,但是应该可以执行以下操作:

# not tested...
library(plyr) # for join(...)
library(rgdal) # for readOGR(...)
library(ggplot2) # for fortify(...)

mapa <- readOGR(dsn=".",layer="shapefile name w/o .shp extension")
map@data$id <- rownames(mapa@data)
mapa@data <- join(mapa@data, data, by="CD_GEOCODI")
mapa.df <- fortify(mapa)
mapa.df <- join(mapa.df,mapa@data, by="id")

ggplot(mapa.df, aes(x=long, y=lat, group=group))+
geom_polygon(aes(fill=Population))+
coord_fixed()

关于r - fortify()之后如何从shapefile中保留信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22096787/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com