ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [R] Bar Chart Race 재현 02
    Project/Bar Chart Race (with R) 2020. 7. 5. 22:41

    목차

     

    서론

     지난 1년 동안 Bar Chart Race와 관련된 영상들이 계속해서 등장하여 많은 인기를 끌고 있다. 실제 Bar Chart Race를 구성해서 제공하는 콘텐츠부터, 다양한 툴을 활용하여 이를 제작하는 과정까지를 소개하는 콘텐츠들이 이에 해당한다. Bar Chart Race의 경우 다이나믹한 데이터 시각화를 애니메이션으로 보여주기 때문에 데이터에 대한 변화를 쉽게 이해 할 수 있다는 장점을 가지고 있다.

     Bar Chart Race를 재현하기 위한 연구모형으로 지난 Bar Chart Race 재현 01에서 <그림 1>을 소개하였다. 이번 재현에서는 원천 데이터를 수집하는 것부터 시작해서 원하는 형태로 데이터를 가공하는 전처리 단계까지의 데이터 엔지니어링(Data Engineering) 부분을 소개하고자 한다. 

    <그림 1> Bar Chart Race 재현 프로세스

    데이터 수집

     Bar Chart Race를 구현하기 위해서 필요한 데이터의 형태가 있다.  아래의 [표 1]과 같이 연도 혹은 월과 같이 시점에 따라 지표가 변화하면서 순서 변화를 볼 수 있는 데이터가 필요하다. 2019년 1월 인천으로 유입된 시민이 1등이고 서울은 2등 대구, 부산이 이어서 등수를 표시할 수 있다. 2월에는 서울이 1등이고 인천, 부산, 대구로 전혀 다른 순서를 보여준다.

     유튜브에서는 선 그래프보다 막대 그래프의 변화를 통해 보여주는 것이 많이 보이는 추세이다. 이를 위해, 필요한 데이터를 국가통계포탈(Kosis), 공공데이터포탈, WorldBank 등으로부터 일월년별 데이터를 수집할 필요가 있다.

     

    구분 2019.01 2019.02 2019.03 2019.04 2019.05 2019.06 2019.07 2019.08 2019.09
    서울 -94 3,034 -1,650 -4,738 -6,328 -6,105 -7,077 -7,410 -5,466
    부산 -2,558 -1,677 -1,920 -2,110 -1,833 -1,756 -1,924 -1,897 -1,390
    대구 -1,213 -2,266 -2,425 -1,724 -1,914 -1,780 -1,788 -1,925 -1,481
    인천 918 -395 -98 -302 5 -473 -653 -580 -167

    [표 1] 시도별 순이동 수 데이터

     

    데이터 전처리

     앞서 본 시도별 순이동 수 데이터는 월별로 변화하는 정보를 확인 할 수 있으며, 이를 바로 사용하기엔 한계가 있다. 이를 활용하기 위해서는 [표 2]와 같이 데이터를 가공할 필요가 있다. 수집원이 동일한 경우 데이터의 구조에 변화가 없을 가능성이 높기 때문에, 한번 구현하면 데이터만 교체하여 활용할 수 있다.

     

    region year index rank
    전라남도 1998 1232904 1
    충청남도 1998 906633 2
    전라북도 1998 845769 3
    경상북도 1998 661963 4
    경기도 1998 629632 5

    [표 2] 전처리 한 시도별 쌀 생산량 데이터

     

     

     데이터의 구조를 쉽게 변형하기 위해서 melt()함수를 활용하여 손쉽게 변형할 수 있는데, 이 함수는 reshape2 패키지에 담겨있다. <그림 2>의 그림을 살펴보면 melt()함수를 이해하기 쉬울 것이다. 이는 [표 1]을 [표 2]로 쉽게 변형 할 수 있으며, 반대의 경우 cast()함수를 사용할 수 있다.

     

    <그림 2> Melt()함수의 변화 구조도

    Lesson Learned

     Bar Chart Race 재현을 통해 이슈가 되고 있는 콘텐츠를 생성하는 것이 첫번째 목표이고, 이를 통한 공공 데이터의 활용을 하고자 하는 것이 두번째 목표이다. 이를 위해서 Bar Chart Race가 가능한 데이터 구조를 이해하고 공공 데이터의 수집부터 가공까지의 과정을 진행하였다. 다음 과정에서는 가공한 데이터를 기반으로 시각화를 하는 과정을 다뤄보고자 한다. ggplot2를 활용하여 그래프를 그릴 예정이며, 데이터 시각화의 다양한 케이스를 공유하여 라이브러리의 우수함을 보고자 한다.

     

    Reference

    1. 통계청, "시군구별 이동자수", kosis.kr/statHtml/statHtml.do?orgId=101&tblId=DT_1B26001_A01&conn_path=I3

    2. Hadley Wickham, "reshape2", https://cran.r-project.org/web/packages/reshape2/reshape2.pdf

    'Project > Bar Chart Race (with R)' 카테고리의 다른 글

    [R] Bar Chart Race 재현 04  (0) 2020.07.18
    [R] Bar Chart Race 재현 03  (0) 2020.07.11
    [R] Bar Chart Race 재현 01  (0) 2020.05.28

    댓글

Designed by Tistory.