📚파이썬 머신러닝 판다스 데이터분석 part4. 데이터 시각화

📄part4 matplotlib.ipynb

🐿️ 데이터 불러오기 (선 그래프에 이어서)

df=pd.read_excel('data/시도별 전출입 인구수.xlsx', header=0)
df.fillna(method='ffill',inplace=True)
mask=(df['전출지별']=='서울특별시')&(df['전입지별']!='서울특별시')
df_seoul=df[mask]
df_seoul.drop(['전출지별'],axis=1, inplace=True)
df_seoul.rename({'전입지별':'전입지'},axis=1,inplace=True)
df_seoul.set_index('전입지', inplace=True)

🐿️면적 그래프

각 열의 데이터를 선 그래프로 구현하는데, 선 그래프와 x축 사이의 공간에 색이 입혀짐 색의 투명도는 기본값 0.5로 투과되어 보임 (투명도: 0~1 범위) 선 그래프를 그리는 plot() 메소드에 kind='area' 옵션을 추가하면 간단하게 그릴 수 있음

그래프를 누적할 지 여부를 설정할 수 있는데, 기본값은 stacked=True 옵션을 사용하면 됨 각 열의 선 그래프를 다른 열의 설 그래프 위로 쌓아 올리는 방식으로 표현됨. 각 열의 패턴과 함께 열 전체의 합계가 어떻게 변하는 지 파악할 수 있음

따라서 면적그래프를 선 그래프를 확장한 개념으로 누적 선 그래프 라고 부르기도 함 (stacked line plot)

🍒stacked=False

col_years=list(map(str, range(1970, 2018)))
df_4=df_seoul.loc[['충청남도','경상북도','강원도','전라남도'], col_years]
df_4=df_4.transpose()

# 스타일 서식 지정
plt.style.use('ggplot')

# 데이터프레임의 인덱스를 정수형으로 변경 (x축 눈금 라벨 표시)
df_4.index=df_4.index.map(int)

# 면적그래프 그리기
df_4.plot(kind='area', stacked=False, alpha=0.2, figsize=(20,10))

plt.title('서울 -> 타시도 인구 이동', size=30)
plt.ylabel('이동 인구 수', size=20)
plt.xlabel('기간', size=20)
plt.legend(loc='best', fontsize=15)

plt.show()

Untitled

(공부할때는 몰랐는데 노션에 정리하면서 생각해보니 df_4.plot(kind=’area’) 형식이라 굳이 따지자면 matplotlib 라기 보다 판다스 내장 그래프에다가 matplotlib로 제목이랑 범례 등등을 설정한 것으로 볼 수 있는 듯함)

🍒stacked=True