본문 바로가기

Theory/DataScience

우리나라 지도그리는 모듈 배포 - 인구소멸위기지역, 여성인구비율 등등

아주 예전에 혜식님의 블로그를 참조로 우리나라 지도 그리기를 해본 적이 있는데요. 그리고 이 방법을 이용해서 우리나라 인구 소멸 위기 지역도 시각화를 했구요. 문재인 대통령님이 당선되던 19대 대선결과를 분석하던 글에서도 이용했었죠. 그리고 이 방법은 최근 제가 집필한 파이썬으로 데이터 주무르기라는 책에서도 활용을 했었죠. 그리고 또 제가 토요일마다 진행하는 파이썬을 활용한 데이터 분석 입문이라는 수업에서도 역시 다루었습니다. 정확하게는 수업에서 사용했었죠. 수업의 난이도 조절을 위해 이제는 다루지 않지만 말이죠^^. 그래도 애써 정리했던 내용인데 사용하지 않게 되어서 살짝 블로그에 기록을 남겨봅니다.^^. 일단, 이 글에서는...

drawKorea.py

라는 파일을 다운로드 받으셔서 지도를 그려서 테스트할 소스코드랑 같은 폴더에 두시면 됩니다. 뭐 패키지로 배포하면 더 멋지겠지만, 일단 그런 방법을 잘 모르는데다(그것도 공부해 볼려구요^^) 이런걸 꼭 배포까지 거창하게 할 건 아니다 싶어서 말이죠.ㅠㅠ. 위 파일의 코드는 아래를 펼치시면 됩니다.

함수에 사용된 코드의 설명은 생략입니다^^. 대충 이전에 다루어서요^^. 아.. 그래도 하나 이야기할 것은 이 그림을 그리게 되는 시작은

제가 직접 만든 엑셀파일을 이용했던거죠^^. 함수를 만들때 지역 기준을 직접 잡았는데 그걸 엑셀로 잡은 겁니다.

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
%matplotlib inline

from matplotlib import font_manager, rc
plt.rcParams['axes.unicode_minus'] = False

f_path = "/Users/pinkwink/Library/Fonts/D2Coding-Ver1.3-20171129.ttf"
font_name = font_manager.FontProperties(fname=f_path).get_name()
rc('font', family=font_name)

import drawKorea as dK

필요한 모듈을 잡구요... 같은 폴더에 있는 py 파일도 위에 보이듯이 import drawKorea as dK로 임포트할 수 있습니다. 이 모듈을 사용할 때 가장 중요한 부분은

dK.draw_korea_pd

바로 dK.draw_korea_pd라는 변수입니다.

바로 여러분들이 사용할 데이터가 있다면 그 데이터의 ID를 위 변수의 ID와 맞추면 됩니다.

dK.simpleDraw(dK.draw_korea_pd)

기본적인 형태는 위 명령을 사용해보면

이렇게 그려집니다. 엑셀과 동일하게^^ 이제 연습용으로...

pop_exam.csv

위 파일을 받으세요.. 위 파일에는 인구 현황과 남여비율 등의 데이터가 들어 있습니다.

korea_pop = pd.read_csv('./pop_exam.csv', index_col=0)
korea_pop

읽어보면...

내용은 위와 같은데요... 소속 광역시도와 시도, 그리고 20, 30대 여성인구, 65세 이상 인구, 남성, 여성 인구, 인구 소멸 위지 지역 여부, 여성비, 2030여성비의 데이터가 있습니다. 그리고 앞선 모델에서 ID를 일치시키고, x, y좌표를 같이 두었습니다. 저런 경우는 그냥 사용하시면 됩니다.  아 저 인구 데이터는 국가통계포털에서 2017년 인구 현황을 받은 것입니다.

dK.drawKorea('인구수합계', korea_pop, 'Blues')

이렇게 해서.. 인구수합계를 단순히 그려보면

이렇습니다. 서울에서는 송파가 가장 인구가 많네요...남양주가 그렇게 인구가 많은 줄 몰랐네요^^

dK.drawKorea('소멸위기지역', korea_pop, 'Reds')

이제 인구 소멸 위기 지역을 표시해보죠

저렇습니다. 상당히 위기죠. 우리나라의 위기.ㅠㅠ.

dK.drawKorea('여성비', korea_pop, 'RdBu', zeroCenter=True)

단순하게 여성비율을 보면

이렇습니다. 뭐 남녀 비율이 고만고만해 보일 수 있지만, 그건 정말 지역별 남여 비율이죠. 20-30대 인구만 다시 비율을 보면..

dK.drawKorea('2030여성비', korea_pop, 'RdBu', zeroCenter=True)

꽤 문제가 보입니다.

서울등의 지역에서 여성 인구 밀집 성향이 보이고, 나머지 많은 지역 특히 지방에서 남초현상이 많이 관찰됩니다. 그 지역들이 또 대다수 인구소멸위기지역이기도 하구요. 아무튼.. 우리나라 지도 그리는 함수를 살짝 공유합니다.^^

반응형