(파이썬-Matplotlib) 시각화 튜토리얼 - 히트맵

Page content

강의 홍보

히트맵 그래프

히트 맵(heat map)은 열을 뜻하는 히트(heat)와 지도를 뜻하는 맵(map)을 결합시킨 단어로, 다양한 강도로 다양한 색상으로 데이터 범위를 시각화하는 데 사용된다. 여기서는 상관 행렬을 열 지도로 표시하는 예를 들 수 있다. 상관 행렬의 요소는 두 변수 사이의 선형 관계의 강도를 나타내며, 행렬에는 주어진 데이터에 포함된 속성의 모든 조합에 대한 그러한 값이 포함되어 있다. 데이터에 5개의 속성이 있는 경우 상관 행렬은 5 x 5 행렬이 된다.

matplotlib 모듈에서는 heatmap 함수는 존재하지 않는다. 대신, imshow 함수를 활용하는 것이 특징이다.

(1) 라이브러리 불러오기

필요한 모듈을 불러온다.

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

(2) 데이터 생성

이번에는 seaborn 패키지 내 flights 데이터를 활용한다.

flights = sns.load_dataset("flights")
flights = flights.pivot("month", "year", "passengers")
flights

(3) 그래프 구현

우선 그래프의 사이즈를 지정한다.

plt.figure(figsize = (12, 9))
plt.imshow(flights, cmap = 'hot')
plt.xticks(range(len(flights)), flights.columns, rotation = 20)
plt.yticks(range(len(flights)), flights.index, rotation = 20)
plt.colorbar()
plt.show()

png

(4) 전체코드

전체 코드는 다음과 같다. 이번에는 색상코드를 YlGnBu로 바꿔서 작성한다. cmap을 설정하는 메뉴얼은 다음 사이트(Choosing Colormaps in Matplotlib)를 소개한다.

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

flights = sns.load_dataset("flights")
flights = flights.pivot("month", "year", "passengers")

plt.figure(figsize = (12, 9))
plt.imshow(flights, cmap = 'YlGnBu')
plt.xticks(range(len(flights)), flights.columns, rotation = 20)
plt.yticks(range(len(flights)), flights.index, rotation = 20)
plt.colorbar()
plt.show()

png

matplotlib을 활용하여 보다 고급적인 시각화를 구현하고 싶다면, Creating annotated heatmaps에서 확인한다.