2012-10-13 4 views
7

나는 카운티 수준에서 플롯 한 많은 데이터를 가지고있다. without borders. 주 경계를 추가하고 싶습니다. 상태 shapefile (다각형)이 있지만 spplot에는 이전 맵 위에 추가 할 수있는 방법이 없습니다. 패널 함수를 다시 작성하지 않고 두 개의 SPDF (다른 사람들이 겪고있는 문제에 대해 꽤 전문화되어있는 것처럼 보임)를 사용하지 않고이 작업을 수행 할 수있는 방법이 있습니까?두 개의 SpatialPolygonsDataFrames를 spplot으로 오버 플로팅

여기에 재현 예제 :

library(sp) 
Srs1 = Polygons(list(Polygon(cbind(c(2,4,4,1,2),c(2,3,5,4,2)))), "s1") 
Srs2 = Polygons(list(Polygon(cbind(c(5,4,2,5),c(2,3,2,2)))), "s2") 

county <- SpatialPolygonsDataFrame(SpatialPolygons(list(Srs1,Srs2)), 
            data.frame(z=1:2, row.names=c("s1","s2"))) 

SrsA <- Polygons(list(Polygon(cbind(c(3,5,5,1,3),c(3,4,6,5,3)))),"sA") 
state <- SpatialPolygonsDataFrame(SpatialPolygons(list(SrsA)), 
            data.frame(z=1,row.names="sA")) 

spplot(county, zcol="z",col=NA) 
spplot(state, add=TRUE) # Note the add=TRUE does nothing here, but that's the spirit of what I want to accomplish 
+0

난 그냥 기본 그래픽을 사용하는 것, bbox(obj) 예를 들어

에서 적절한 한계를 추출하여이 문제를 해결할 수 있습니다 음모 (foo는, COL = ...) 및 = TRUE 작품을 추가하면 색상을 더 잘 제어 할 수 있습니다. 기본 spplot 색상은 다각형에 적합하지 않습니다 (흰색 - 화이트 - 화이트는 결코 좋은 생각이 아닙니다). – Spacedman

+0

@ 스페이스 맨 나는'col.regions = gray (...)'을 사용 해왔다. 요점이 맞춰졌고 탐험 적 trellised 시각화가 필요할 때 기본 그래픽 또는 ggplot 및 예비 격자로 이동할 것입니다. 가능한 한 피하려고 노력하는 더 많은'cut'ting과'legend'ing을 의미합니다. –

답변

10

spplot 기능을 사용 overplot하려면 sp.layout 인수를 사용할 수 있습니다. 예를 들어, sp.layout 인수리스트로서 상기리스트 아이템을 전달 같은

spCounty <- list("sp.polygons", county, col = NA) 
spState <- list("sp.polygons", state) 

이어서 플롯 적절한 레이아웃 아이템들의 목록을 만들 :

# spplot(county, zcol = "z", col = NA, sp.layout = list(spCounty, spState)) 
# actually, you only need to pass the second layout item to sp.layout 
spplot(county, zcol = "z", col = NA, sp.layout = spState) 

X 및 Y 제한되지 수도 두 공간 데이터. 프레임이 완전히 겹치지 않는 경우 올바른지 확인하십시오. 필요한 경우이

theMin <- pmin(bbox(county)[,1], bbox(state)[,1]) 
theMax <- pmax(bbox(county)[,2], bbox(state)[,2]) 

spplot(county, zcol = "z", col = NA, sp.layout = spState, 
    ylim = c(theMin[2], theMax[2]), xlim = c(theMin[1], theMax[1])) 

enter image description here

관련 문제