# 4-1. 지도 그리기


world <- map_data("world")


'qmap' 등으로 간단하게 지도를 출력하는 방법도 있지만, 라벨을 사용하고 싶어 지도와 마킹을 다른 함수를 사용해 출력하겠습니다. 우선 'ggplot2' 패키지에 있는 함수 'map_data'를 이용해 세계 지도의 레이아웃(.... 테두리?)을 world로 저장해줍니다.




# 4-2. 마커 출력하기


ggplot(travel_add02, aes(x=lon, y=lat)) +

    geom_polygon(data=world, aes(x=long, y=lat, group=group), fill="white", color="grey95") +

    geom_point(color="grey", alpha=.55, aes(), size=3) +

    geom_point(color="grey", alpha=.75, shape=1, aes(), size=3) +

    geom_label_repel(aes(fill=factor(city), label=city), fontface="bold", color="white", 

box.padding=0.35, point.padding=0.5, segment.color="grey70", fontface="bold",

size=09, family="AppleGothic") +

    theme(legend.position = 'none')


> ggplot(travel_add02, aes(x=lon, y=lat)) +

      geom_polygon(data=world, aes(x=long, y=lat, group=group), fill="white", color="grey95") +

      geom_point(color="grey", alpha=.55, aes(), size=3) +

      geom_point(color="grey", alpha=.75, shape=1, aes(), size=3) +

      geom_label_repel(aes(fill=factor(city), label=city), fontface="bold", color="white", 

  box.padding=0.35, point.padding=0.5, segment.color="grey70", fontface="bold",

  size=09, family="AppleGothic") +

      theme(legend.position = 'none')




'ggplot'을 이용해 지도와 라벨을 출력했습니다. 단계를 나누어 진행해보겠습니다.


우선 위도, 경도가 저장되어있는 데이터 프레임(travel_add02)을 넣고 축 이름을 지정해줍니다. 다음으로 'geom_polygon'을 이용해 'map_data'로 그렸던 지도에 위도, 경도 값을 주고 바탕 색(fill)과 테두리 색(color)을 지정해줍니다. 참고로 grey 뒤에 붙은 숫자가 낮을수록 진한 회색입니다. 여기까지 진행하면 다음과 같은 기본 지도가 만들어집니다.




다음으로 출력 대상의 위도, 경도에 동그란 점을 찍어주기 위하여 'geom_point'를 사용해보겠습니다. 원을 연한 색으로 채우고 진한 테두리를 출력해주기 위해 두 개로 나누어 썼습니다. 색, 투명도(alpha), 크기(size)를 입력해주고 원을 사용하기 위해 shape 값을 1로 주었습니다. (2=삼각형, 3=더하기 기호, 4=엑스표, 5=마름모, ...) 여기까지 진행한 결과는 다음과 같습니다. 공항의 위치에 제대로 마킹이 되었음을 확인할 수 있었습니다.




마지막으로 라벨 출력 단계입니다. 'geom_text'나 'geom_label'로 간단하게 출력해도 되지만, 붙어있는 경우 오버랩되는 단점이 있습니다. 유럽에만 5개의 마크가 찍혔으므로 'ggrepel'패키지에 있는 'geom_label_repel'을 이용해 출력하겠습니다. 우선 축(aes)에 출력 텍스트가 담긴 벡터(사용된 자료는 이전 포스팅을 참조해주세요.)를 넣어주었습니다. 이후 라벨 채우기 색(color), 박스 크기(box.padding), 폰트 사이즈(size), 사용 폰트(family) 등도 설정해주었습니다. 이를 이용해 출력한 최종 결과는 [그림 1]과 같습니다. 혹시 위의 과정 그대로 출력했는데 라벨에 글자(리마, 파리...)가 제대로 출력되지 않는 분들은 아래의 포스팅을 참고해주세요.



(참고) ggplot, 한국어 출력 가능한 폰트 확인 (바로가기)







+ Recent posts