heatmap 이란?

heatmap은 열을 의미하는 heat와 지도를 뜻하는 map을 합친 단어이다. 데이터들의 배열 을 색상으로 표현해주는 그래프이다.

왜 heatmap을 사용하는가

- heatmap을 사용하면 두 개의 카테고리 값에 대한 값 변화를 한눈에 알기 쉽다.
- 대용량 데이터도 heatmap을 이용해 시각화 한다면 이미지 몇장으로 표현이 가능하다.

heatmap 만들기

먼저 필요한 모듈과 라이브러리들을 import 해주었다.

heatmap을 그리기위해  seaborn에 내장되어 있는 flights 데이터셋을 불러왔다.

flights 데이터 셋은 1949~1960년간 월별 승객수를 담고 있다.

현재 데이터가 heatmap을 그리기에는 적합하지 않으므로 다음과 같이 데이터 셋을 바꿔주었다,

빨간색이 짙을수록 승객수가 적음을 의미하고 빨간색이 얕아질수록 승객수가 높음을 의미한다.오른쪽에 colorbar를 통해  어느정도의 값을 가지는지 알 수 있다.

위와 같이 데이터 형태가 테이블 형태일때보다 heatmap으로 나타내면 언제 승객이 많고 승객수 변화가 어떻게 되는지 알기 쉬워진다.

Heatmap 기본 문법

ax=sns.heatmap(df, # 데이터
	       vmin=100, # 최솟값
               vmax=700, # 최댓값          
               cbar=True, # colorbar의 유뮤          
               center=400, #중앙값 선정          
               linewidths=0.5# cell사이에 선을 집어 넣는다.          
               annot=True, fmt="d"# 각 cell의 값 표기 유무, 그 값의 데이터 타입 설정          
               cmap='Blues' #히트맵의 색을 설정한다.
               )

vmin,vmax

vmin과 vmax를 이용하여 색으로 표현하는 값의 최솟값,최댓값을 정해줄수 있다.

최솟값을 200으로 설정했기 때문에 200이하는 모두 검은색이 되었고
최댓값을 500으로 설정했기 때문에 500이상은 모두 흰색이 되었다.

cbar

cbar를 이용해 colorbar의 유무를 정해 줄수 있다. True면 colorbar가 생긴다.

cbar=False 이기 때문에 옆에 있던 colorbar가 사라진 모습이다.

center

center을 이용해 중앙값을 정해줄 수 있다.

colorbar를 통해 알수 있듯이 400을 중앙값으로 설정했기 때문에 400은 검은색이 되고
400보다 큰숫자면 붉은색 400보다 작은숫자면 푸른색으로 표현된다.

linewidths

linewidths 을 이용해 각 cell 사이마다 선을 넣어주고 그 선의 굵기를 정할 수 있다. 간단하게 cell사이의 간격을 조정해준다 생각하면 편하다

annot

annot을 이용해 각 cell의 값을 표기할 수 있다. 이때 중요한점은 fmt를 이용해 각 cell의 값의 데이터 형태를 지정해 줘야 한다.

각 cell의 해당되는 값이 표기된 모습이다. 이때 데이터 타입이 정수형이므로 fmt="d" 로 코드를 작성하면 된다.
만약 값에 소수자리가 있고 소수 2번째  자리까지 나타내고 싶다면 fmt=".2f"로 코드를 작성하면 된다

 

cmap

https://chrisalbon.com/python/data_visualization/seaborn_color_palettes/

위 사이트에 다양한 color palettes 예시가 있다.

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기