2017-12-07 31 views
2

나는 이것이 간단하지만 이것이 효과가 있다는 것을 알고 있습니다. 아래의지도에서 초과 된 데이터 포인트를 제거하고 싶습니다. 어떻게해야합니까? 코드 아래에 결과가 나타납니다. 국가 별 경계 외부에서 데이터를 제거하는 중 R

enter image description here

ggplot() + 
geom_polygon(data = rwa2, aes(x = long, y = lat, group= group), 
      colour = "black", size = 0.5, fill = "white") + 
geom_tile(data = df, aes(x = Lon, y = Lat, z = z, fill = z), alpha = 0.8) + 
ggtitle("State Data") + 
xlab("Longitude") + 
ylab("Latitude") + 
scale_fill_distiller(type = "div", palette = "Spectral")+ 
theme_bw() + 
theme(plot.title = element_text(size = 25, face = "bold"), 
     legend.title = element_text(size = 15), 
     axis.text = element_text(size = 15), 
     axis.title.x = element_text(size = 20, vjust = -0.5), 
     axis.title.y = element_text(size = 20, vjust = 0.2), 
     legend.text = element_text(size = 10)) + 
coord_map() 

나는 상태 경계 외부에있는 모든 데이터를 제거합니다. 경계 좌표는 readRDS을 사용하는 Rdata 파일에서 얻으며 상태에는 ID_2, 구역에는 ID_3이 있으므로 경계 좌표는 이름입니다. 안내 좀 해줘.

답변

0

우리는 귀하의 데이터를 가지고 있지 않기 때문에, 귀하의 사건을 처리하기가 어렵습니다. 그러나, 나는 당신을 위해 방법을 남기고 싶습니다. 코드에서 볼 수있는 한 df이라는 데이터 프레임이 있습니다. 임시 SpatialPointsDataFrame을 생성하려고합니다. spdf이라고합시다. 또한 데이터 프레임 인 rwa2이라는 다각형 데이터도 있습니다. rwa2이 공간 클래스 오브젝트 (즉, SpatialPolygonsDataFrame)에서 오는 경우,이를 사용하여 다각형 내에있는 데이터 포인트의 서브 세트를 작성하려고합니다. sp.rwa2이라는 공간 객체가 있다고 가정 해 보겠습니다.

library(sp) 
library(ggplot2) 

1 단계 : df 당신이 spdfsp.rwa2의 proj4string를 할당하는 것이 있는지 확인하십시오 사용하여 SpatialPointsDataFrame을 만듭니다. 이 코드에는 샘플 proj4string이 있습니다.

spdf <- SpatialPointsDataFrame(coords = df[, c("Lon", "Lat")], data = df, 
           proj4string = CRS("+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0")) 

2 단계 : sf.rwa2에 머무르는 부분 데이터 포인트.

whatever <- spdf[!is.na(over(spdf, as(sp.rwa2, "SpatialPolygons"))), ] 

3 단계 : 당신은 ggplot에 대한 코드를 실행하는 것, 그리고 데이터 프레임

whatever <- as.data.frame(whatever) 

에 SPDF을 변환합니다. rwa2은 데이터 프레임입니다.

ggplot() + 
geom_polygon(data = rwa2, aes(x = long, y = lat, group = group), 
      colour = "black", size = 0.5, fill = "white") + 
geom_tile(data = whatever, aes(x = Lon, y = Lat, fill = z), alpha = 0.8) + 
labs(title = "State Data", x = "Longitude", y = "Latitude") + 
scale_fill_distiller(type = "div", palette = "Spectral") + 
theme_bw() + 
theme(plot.title = element_text(size = 25, face = "bold"), 
     legend.title = element_text(size = 15), 
     axis.text = element_text(size = 15), 
     axis.title.x = element_text(size = 20, vjust = -0.5), 
     axis.title.y = element_text(size = 20, vjust = 0.2), 
     legend.text = element_text(size = 10)) + 
coord_map() 
+1

감사합니다. – SamAct