프로그래밍/Pandas

[Pandas] 데이터 시각화 | Matplotlib | 면적 그래프 | 막대 그래프

LeeSeunghyuk 2021. 1. 30. 10:50
반응형

 

지난 포스팅에서는 그래프를 분할, 누적 및 꾸미는 방법을 알아봤습니다.

 

이번 시간에는 다양한 그래프를 그래는 방법을 공부하도록 하겠습니다.

 

# 면적 그래프

 

면적 그래프는 선 그래프와 x축 사이에 색을 입힙니다.

선이나 점이 아닌 도형의 면적을 이용

통계 수치의 크기를 나타냅니다.

 

선or 막대 그래프 -> 변화의 추이를 살펴보는데 유용

면적 그래프  -> 두 개 이상의 자료 비교시 유용

 

투명도(alpha), 누적여부(stacked) 등의 옵션을 사용할 수 있습니다.

누적 여부는 각 열의 선 그래프를 다른 열에 쌓아 올리는 방식입니다.

 

ㆍstacked=True

분기별 판매량과 같은 수치를 누적해서 확인할 때 사용합니다.

 

ㆍstacked=False

분기별 판매량과 같은 수치를 비교할 때 사용합니다.

 

import pandas as pd
import matplotlib.pyplot as plt

## 데이터 전처리
df=pd.read_excel('d:\\판다스 실습\\인구수데이터.xlsx')
df.fillna(method='ffill',inplace=True)
mask=(df['전출지별']=='서울특별시') &(df['전입지별']!='서울특별시')
df2=df[mask]
df2.drop('전출지별',axis=1,inplace=True)
df2.rename({'전입지별':'전입지'},axis=1,inplace=True)
df2.set_index('전입지',inplace=True)
df3=df2.loc[['충청남도','경상북도','강원도']].transpose()
df3

충남, 경북, 강원 3개의 인덱스 선택 및 전처리

 

ㆍ stacked=False , alpha=0.8

df3.plot(kind='area',stacked=False,figsize=(20,10),fontsize=20,alpha=0.8)
plt.title('서울시 -> 타도시 이동',fontsize=20)
plt.legend(loc='best',fontsize=20)

plt.show()

면적그래프 vs 선 그래프

 

충청남도, 경상북도, 강원도의 각 데이터가 따로 그려집니다.

서로 다른 데이터를 비교할 때 사용할 수 있습니다.

투명도(alpha)는 0.8입니다. 

투명도는 0~1사이

 

ㆍ stacked=True , alpha=0.2

df3.plot(kind='area',figsize=(20,10),fontsize=20,alpha=0.2)
plt.title('서울시 -> 타도시 이동',fontsize=20)
plt.legend(loc='best',fontsize=20)

plt.show()

강원도 = 강원도

경상북도 = 경상북도 + 강원도

충청남도 = 충청남도 + 경상북도 + 강원도 

 

누적되어 그래프가 그려졌습니다.

데이터의 누적 수치를 확인할 때 사용합니다.

투명도는 0.2 입니다.

 

# 막대 그래프

 

데이터 값의 크기에 비례하는 높이를 갖는 직사각형으로 데이터를 시각화합니다.

막대 높이를 통해 데이터의 크고 작음을 쉽게 비교할 수 있습니다.

세로형 그래프, 막대 그래프의 종류가 있습니다.

 

질적, 양적 변수 모두 사용 가능합니다.

전문적인 지식이 없어도 쉽게 크기 비교를 할 수 있습니다.

 

ㆍ 세로형 막대 그래프

df3.index=df3.index.map(int)
df3=df3.iloc[df3.index>=2000]
df3.plot(kind='bar',figsize=(20,10),fontsize=20,alpha=0.6)
plt.title('서울시 -> 타도시 이동',fontsize=20)
plt.legend(loc='best',fontsize=20)

plt.show()

# 데이터 전처리

Dataframe 의 인덱스를 int형으로 변경
2000년도 이상의 인덱스만 사용

 

 

선 그래프와 딱히 다를 바가 없는 세로 수직 막대 그래프입니다.

여러 변수를 비교할 때 한 눈에 비교할 수 있습니다.

 

ㆍ 가로형 막대 그래프

df3.index=df3.index.map(int)
df3=df3.iloc[df3.index>=2010]
df3.plot(kind='barh',figsize=(20,10),fontsize=20,alpha=0.6)
plt.title('서울시 -> 타도시 이동',fontsize=20)
plt.legend(loc='best',fontsize=20)

plt.show()

 

데이터를 더 보기 편하게 하기 위해 2010년 이후 데이터만 확인했습니다.

 

 

 

이번 시간에는 < 면적 그래프, 막대 그래프 > 실습을 진행했습니다.

다음 시간에는 < 히스토그램 , 산점도 , 박스 , 파이 그래프 > 실습을 진행하겠습니다.

반응형