빅데이터/Data Visualization
데이터 시각화 08 - Matplotlib (인구 피라미드)
H-V
2022. 1. 24. 20:44
유투버 '나도코딩'님 강의 참조
인구 피라미드 시각화
01 실제 데이터 들고 오기
- 검색이 잘 되는지 확인을 한 후 엑셀 파일을 받고, 파일이 깨지지 않는지 확인 하자. 그리고 현재 작업하고있는 폴더에 넣어 주자!
- 데이터가 어디서 시작하는지 그리고 남/여 데이터가 어디서 나뉘는지 확인이 필요 하다
02 데이터 정제
▶ 남/녀 데이터를 구분짓는 정제 작업이 필요 하다
- 남자 데이터
- 주황색 부분은 필요가없고 파란색 부분이 필요하니 이에 맞게 불러 올때 작업을 해줘야 한다.
import pandas as pd
df_m = pd.read_excel('201112_201112_연령별인구현황_월간.xlsx', skiprows=3, index_col='행정기관',
usecols='B, E:Y')
df_m
▶ 데이터를 쉽게 쓰기위해서 쉼표 처리
df_m.iloc[0] = df_m.iloc[0].str.replace(',','').astype(int)
- 여자 데이터도 같은 작업
df_w = pd.read_excel('201112_201112_연령별인구현황_월간.xlsx', skiprows=3, index_col='행정기관',
usecols='B, AB:AV')
df_w
- 컬럼명 수정
df_w.columns = df_m.columns # 컬럼명 통일
▶ 쉼표 처리
df_w.iloc[0] = df_w.iloc[0].str.replace(',','').astype(int)
df_w
03 시각화
- 데이터 준비는 끝났다. 시각화를 해 보자
* 기본 세팅
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
# 한글 폰트 설정
import matplotlib
matplotlib.rcParams['font.family'] = 'Malgun Gothic' # 윈도우 전용
matplotlib.rcParams['font.size'] = 15 #폰트 크기
matplotlib.rcParams['axes.unicode_minus'] = False
- 피라미드 그리기
plt.figure(figsize=(10, 7))
plt.barh(df_m.columns, -df_m.iloc[0] // 1000, label='남자') # 단위 천명 기준
plt.barh(df_w.columns, df_w.iloc[0] // 1000, label='여자')
plt.title('2011 대한민국 인구 피라미드')
plt.savefig('2011_인구피라미드.png', dpi=100)
plt.legend();
▶ 남자의 데이터를 만대로 나오게 하기 위해 '-'를 준다
※ 이제 년도별 파일만 바꿔서 받고 이름만 바꿔주면 년도별로 피라미드를 만들 수 있다!