데이터 갖고 놀기/실전 전투 R

R을 이용한 세계지도 그리기

고물상자 2017. 2. 17. 12:59

R을 이용한 세계지도 그리기 / 수치 표시하기 

(각종 지표 들)


#필요 패키지

library(maps)

library(ggplot2)

library(ggmap)


#작업디렉토리 설정

setwd


#세계지도 불러오기 

world<-map_data("world")


#원하는 지역만 선택할 경우 

asia<-map_data("world", region=c("China", "Japan", "North Korea", "South Korea"))


#지도 확인 

#theme()로 바다색을 lightblue로 가로세로 grid는 제거 

ggplot(world, aes(x=long, y=lat, group=group))+geom_polygon(fill="wheat", colour="black")+

  theme(panel.background = element_rect(fill="lightblue"), 

        panel.grid.major=element_blank(),

        panel.grid.minor=element_blank())


#원하는 국가 코드 따오기 (수출량 등 수치값이 별도 표기 되야하므로 다른 data.frame

df<-read.csv(" .csv", header=T)

df$column=as.character(df$column) #문자로 변환 (국가명, 지역명 등)

df_1<-mutate_geocode(df, export, source="google")


#지도에 표시하기 

#group은 상황에 따라서 필요한 지역별 수치값을 입력

#size를 ratio로 함으로 비율에 따라 원이 그려짐 

ggplot(data=world, aes(x=long, y=lat, group=group))+geom_polygon(fill="wheat", colour="black")+

  geom_point(data=df_1, aes(x=lon, y=lat, group=export, size=ratio), shape=16, color="green", alpha=0.4)+

  theme(panel.background = element_rect(fill="lightblue"), 

        panel.grid.major=element_blank(),

        panel.grid.minor=element_blank())


#원이 작으므로 원 크기 조절 

#scale_size_area(max_size=20)을 이용

ggplot(data=world, aes(x=long, y=lat, group=group))+geom_polygon(fill="wheat", colour="black")+

  geom_point(data=df_1, aes(x=lon, y=lat, group=export, size=ratio), shape=16, color="blue", alpha=0.4)+scale_size_area(max_size=20)+

  theme(panel.background = element_rect(fill="lightblue"), 

        panel.grid.major=element_blank(),

        panel.grid.minor=element_blank())


#국가별 이름 지정 

#geom_text를 이용, aes를 이용해서 위도 경도 위치로 텍스트 위치 지정

ggplot(data=world, aes(x=long, y=lat, group=group))+geom_polygon(fill="wheat", colour="black")+

  geom_point(data=df_1, aes(x=lon, y=lat, group=export, size=ratio), shape=16, color="blue", alpha=0.4)+

  scale_size_area(max_size=20)+

  theme(panel.background = element_rect(fill="lightblue"), 

        panel.grid.major=element_blank(),

        panel.grid.minor=element_blank())+

  geom_text(data=df_1, aes(x=lon, y=lat+5, group=export, label=export))



도움 출처 : 

http://blog.naver.com/PostView.nhn?blogId=goldenezkang&logNo=220061647790

http://stackoverflow.com/questions/10861773/remove-grid-background-color-and-top-and-right-borders-from-ggplot2