Python

[Python] 씨본(Seaborn) 라이브러리(Library)_2

구루싸 2019. 9. 30. 23:27
반응형
SMALL

주말에 허접하지만 초보자 캠핑을 다녀오느라 공부를 못해 이제서야 씨본(Seaborn) 라이브러리(Library) 두번째 시간이네요-_-

오늘은 지난 시간에 이어 빈도 그래프, 박스 플롯/바이올린 그래프, 조인트 그래프를 그려보고

행, 열 방향으로 서로 다른 조건을 적용하여 여러 개의 서브 플롯을 생성하거나 열을 두 개씩 짝을 지어 분석해보겠습니다

# 판다스(Pandas)
import pandas
import matplotlib.pyplot as mp
import matplotlib
# 씨본(Seaborn)
import seaborn 

titanic_data = seaborn.load_dataset('titanic')
# titanic_data = titanic_data.fillna(method = 'ffill')

print(titanic_data.head(), end = '\n')
print(titanic_data.info(), end = '\n')

matplotlib.rc('font', family = 'AppleGothic') # MAC OS 일 경우 한글 폰트 오류 해결
# 스타일 테마(darkgrid, whitegrid, dark, white, ticks)
seaborn.set_style('ticks')

fig = mp.figure(figsize = (10, 10))
ax1 = fig.add_subplot(3, 2, 1)
ax2 = fig.add_subplot(3, 2, 2)
ax3 = fig.add_subplot(3, 2, 3)
ax4 = fig.add_subplot(3, 2, 4)

# 빈도 그래프 : 각 범주에 속하는 데이터의 개수
seaborn.countplot(x = 'class', # x축
                  palette = 'Set1', # 색 구성
                  hue = 'who', # who column을 기준으로 막대가 나뉨
                  dodge = False, # 누적 그래프
                  data = titanic_data, # data
                  ax = ax1)

# 박스 플롯/바이올린 그래프 : 범주형 데이터 분포와 주요 통계 지표를 함께 제공
seaborn.boxplot(x = 'alive', # x축
                y = 'age', # y축
                hue = 'sex', # sex column을 기준으로 박스가 나뉨
                data = titanic_data, # data
                ax = ax2)
seaborn.violinplot(x = 'alive', # x축
                   y = 'age', # y축
                   hue = 'sex', # sex column을 기준으로 바이올린 모양이 나뉨
                   data = titanic_data, # data
                   ax = ax3)
ax2.legend(loc = 'upper right')
ax3.legend(loc = 'upper left')

# 조인트 그래프 : 산점도와 x-y축에 대한 히스토그램 
joint = seaborn.jointplot(x = 'fare', # x축
                          y = 'age', # y축
                          kind = 'reg', # kind : reg-회귀선, hex-육각 산점도, kde-커널 밀집 그래프
                          data = titanic_data) # data
                          
# 행, 열 방향으로 서로 다른 조건을 적용하여 여러 개의 서브 플롯 생성
grid = seaborn.FacetGrid(data = titanic_data, col = 'who', row = 'survived')
grid = grid.map(mp.hist, 'age')

# 데이터프레임의 열을 두 개씩 짝을 지어 분석
titanic_extraction = titanic_data[['age', 'fare', 'pclass']]
grid = seaborn.pairplot(titanic_extraction)

mp.show()

코드는 각자 실행해보세요~ 오늘은 여기까지-_- 너무 졸리네요

반응형
LIST