DL/python

seaborn.heatmap() 함수 설명서: 데이터를 색상으로 표현하는 히트맵 만들기

발등에 메테오 떨어짐 2024. 12. 4. 11:21

**seaborn.heatmap()** 함수는 숫자 데이터를 색상으로 표현하여 직관적으로 이해하기 쉽게 만드는 히트맵을 그리는 데 사용됩니다. 마치 열 감지 카메라처럼 데이터의 값에 따라 색깔이 달라져서, 데이터의 분포와 패턴을 한눈에 파악할 수 있도록 도와줍니다.

히트맵이란?

히트맵은 2차원 데이터를 색상으로 표현한 그래프입니다. 데이터 값이 클수록 밝거나 진한 색으로, 작을수록 어둡거나 옅은 색으로 표현됩니다. 이를 통해 데이터의 분포, 패턴, 상관관계 등을 쉽게 파악할 수 있습니다.

seaborn.heatmap() 함수 사용법

```python
seaborn.heatmap(data, *, vmin=None, vmax=None, cmap=None, center=None, robust=False, annot=None, fmt='.2g', annot_kws=None, linewidths=0, linecolor='white', cbar=True, cbar_kws=None, cbar_ax=None, square=False, xticklabels='auto', yticklabels='auto', mask=None, ax=None, **kwargs)
```

**필수 입력값:**

* **data:** 히트맵으로 표현할 2차원 데이터 (넘파이 배열, 판다스 데이터프레임 등)

**선택 입력값:**

* **vmin, vmax:** 색상 범위의 최솟값과 최댓값. 지정하지 않으면 데이터에서 자동으로 추출됩니다.
* **cmap:** 색상 맵. 'viridis', 'magma', 'coolwarm' 등 다양한 옵션이 있습니다.
* **center:** 색상 중심 값. diverging 컬러맵을 사용할 때 유용합니다.
* **robust:** True로 설정하면 이상치의 영향을 줄여 색상 범위를 계산합니다.
* **annot:** True로 설정하면 각 셀에 데이터 값을 표시합니다.
* **fmt:** 데이터 값 표시 형식 (예: '.2f'는 소수점 둘째 자리까지 표시).
* **annot\_kws:** 데이터 값 표시에 대한 추가 설정 (폰트 크기, 색상 등).
* **linewidths:** 셀 사이의 경계선 두께.
* **linecolor:** 셀 사이의 경계선 색상.
* **cbar:** 컬러바 표시 여부.
* **cbar\_kws:** 컬러바에 대한 추가 설정.
* **cbar\_ax:** 컬러바를 표시할 축.
* **square:** True로 설정하면 각 셀을 정사각형으로 만듭니다.
* **xticklabels, yticklabels:** x축과 y축 눈금 레이블 설정.
* **mask:** True로 설정된 셀은 데이터를 표시하지 않습니다.
* **ax:** 히트맵을 그릴 matplotlib 축 객체.
* **kwargs:** matplotlib.axes.Axes.pcolormesh() 함수에 전달할 추가 설정.

예시

```python
import seaborn as sns
import matplotlib.pyplot as plt

data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

sns.heatmap(data, annot=True, cmap='YlGnBu', fmt='d')
plt.show()
```

**결과:**

3x3 크기의 히트맵이 생성되고, 각 셀에는 데이터 값이 표시됩니다. 색상 맵은 'YlGnBu'로 설정되어 값이 클수록 진한 파란색으로 표현됩니다.