본문 바로가기
self.python

[python] seaborn 기본 제공 데이터셋 불러오기, heatmap 그리기

by 톤토니 2022. 5. 11.
반응형

 

 

seaborn 그래프 그리기

 

 

그래프를 그리기 위해 필요한 라이브러리를 먼저 import 한다.

 

import matplotlib.pyplot as plt
import seaborn as sns

 

예시로 사용할 데이터는 seaborn 내에서 제공하는 데이터셋을 사용해보겠다.

seaborn에서 자체적으로 'flights', 'iris', 'taxis' 등 여러가지를 제공하고 있다.

파일을 따로 불러오지 않아도 seaborn 에서 제공해주기 때문에 사용할 수 있는 데이터셋이다.

 

sns.get_dataset_names() 

를 사용하여 어떤 데이터셋을 제공하고 있는지 확인해볼 수 있다.

 

sns.get_dataset_names()

'''
['anagrams',
 'anscombe',
 'attention',
 'brain_networks',
 'car_crashes',
 'diamonds',
 'dots',
 'exercise',
 'flights',
 'fmri',
 'gammas',
 'geyser',
 'iris',
 'mpg',
 'penguins',
 'planets',
 'taxis',
 'tips',
 'titanic']
 '''

 


 

타이타닉 데이터가 제일 유명하다고 생각하니 타이타닉 데이터로 보겠다.

 

 

titanics = sns.load_dataset('titanic')
titanics

 

 

 


 

 

 - bar 그래프 그리기

 

히트맵 그리기 전에 간단하게 그래프를 한 번 그려보았다.

해당 데이터셋에 남자와 여자 각각이 몇 명인지 bar 그래프 형식으로 그리려면 countplot 을 사용하면 된다.

 

sns.countplot(data = titanics, x = 'sex')
plt.show()

# 가로로 bar 그래프를 그리고 싶으면 x 대신 y = 'sex' 으로 쓰면 된다.

 

 


 

- heatmap 그리기

 

heatmap을 그리기 위해서는 pivot_table 을 만들어주는 것이 편하다.

titanic 데이터셋을 조금 정리한 데이터 프레임을 data1에 저장해 두었다.

그 data1 데이터 프레임을 이용하여 피벗테이블을 만들어 주었다.

인덱스는 성별, 열은 좌석 등급, 값은 생존 여부(1이면 생존, 0이면 사망) 으로 설정해주었다.

 

data1 = data1.pivot_table(index = 'sex', columns = 'class', values = 'survived', aggfunc = 'sum')
data1

 

 

 

위 피벗테이블에서 First class 에 탑승하고 생존한 여자는 82명, First class 에 탑승하고 생존한 남자는 39 명

이렇게 확인할 수 있다.

 

이제 이걸 히트맵으로 표현하면 아래와 같다.

 

plt.figure(figsize = (4,4))

sns.heatmap(data = data1, cmap = 'Blues', annot = True) #annot = 숫자 써줄건지 말건지

plt.show()

 

figsize 는 그래프 크기이니 구분해야 하는 값이 많으면 더 크게 설정해도 좋을 것 같다.

지금 같은 경우는 6개 밖에 없어서 (4, 4) 로 했다.

annot 은 그래프 내부에 숫자를 표시 할 것인지, 아닌지 여부이고 True로 되어있으면 숫자가 표시 된다.

 

 

 

반응형

댓글