2013-06-24 2 views
1

tutorial처럼 isarhytmoc 포인트의 종류를 표시하고 싶지만 인구 데이터가 있습니다. 그러나, 불행하게도, 나는 더 충분한 기술이없고 그러한 코드와 함께 제공 : 사람이 몇 가지 아이디어를 도와 줄 수 있다면 플롯 포인트 모집단

require(sp) 
require(rgdal) 
require(RColorBrewer) 
require(ggplot2) 
library(plyr) 
library(maptools) 
library(rgeos) 
require(gpclib) 
gpclibPermitStatus() 
gpclibPermit() 


rus<-url("http://www.filefactory.com/file/4h1hb5c1cw7r/n/RUS_adm1_RData") 
print(load(rus)) 
proj4.str <- CRS("+init=epsg:3413 +lon_0=105") 
gadm.prj <- spTransform(gadm, proj4.str) 


popul <- read.csv2(file="C:\\unempl11.txt", header = TRUE, 
     sep = ";",quote = "", dec=",", stringsAsFactors=F) 

df <- fortify(gadm.prj, region = "ID_1") 
df2 <- merge(df, gadm.prj, by.x="id", by.y="ID_1") 






p <- ggplot(df2, aes(x = long, y = lat, group=group)) + 
     geom_point(data = popul, 
        mapping = aes(x=lon, y=lat, colour=abs), 
        size = 3, 
        alpha = 0.8) + 
     scale_colour_gradient2(name = "Population", 
           low = "darkred", 
           mid = "white", 
           high = "blue", 
           guide = "colorbar") + 
     ggtitle("Population in Russia)") 
p + geom_path(data = df2, 
       mapping = aes(x=long, y=lat, group=group), 
       size = 0.125) 

Here is the data I use

, 내가 감사 할 것입니다.

+0

해당 데이터를보고 지불해야? – cianius

+0

죄송합니다. 편집했습니다. http://files.mail.ru/D094C375C3AD4F81940A7F34D2247321 –

+0

여기에서 같은 질문을하고 있습니다. http://gis.stackexchange.com/questions/64288/plot-points-map-of-population –

답변

1

점을 표시하려고하지만 SpatialPolygonsDataFrame 소스를 사용 중입니다.

한편
library(sp) 
library(rgdal) 

rus <- url("http://www.filefactory.com/file/4h1hb5c1cw7r/n/RUS_adm1_RData") 
load(rus) 
proj4.str <- CRS("+init=epsg:3413 +lon_0=105") 
gadm.prj <- spTransform(gadm, proj4.str) 
## IDs needed to match polygons and data 
nms <- gadm.prj$NAME_1 

ll <- coordinates(gadm.prj) 

, 내가 올바르게를 검색 할 수 없습니다 : 그건 당신이 필요한 경우 당신은 coordinates와 좌표에게 무게 중심의 를 추출하고 데이터의 좌표로 사용하지만, 나는 확실하지 않다 수 파일의 data 열 나는 약간의 노이즈로 채우기 :

popul <- read.csv2('/tmp/popul.txt') 
popul$data <- runif(nrow(popul)) 

지금은 (우리 가 this previous question에서했던 것과 유사) 좌표 데이터와 일치하는 시간 :

ord1 <- match(nms, popul$region) 
popul <- popul[ord1,] 
row.names(popul) <- nms 
row.names(ll) <- nms 

popSP <- SpatialPointsDataFrame(ll, popul["data"], proj4string=proj4.str) 

SpatialPointsDataFrame 직접 spplot으로 표시 할 수는 아래 경계는 sp.layout입니다.

spplot(popSP, sp.layout=list('sp.polygons', gadm.prj)) 

result

+0

작동합니다! 다시 감사합니다! –

관련 문제