[파이썬] seaborn 히트맵 내부의 주석 및 셀 크기 조정

Seaborn은 파이썬 데이터 시각화 라이브러리 중 하나로, 히트맵(heatmaps) 을 생성하는 도구로 사용됩니다. 히트맵은 데이터의 행과 열간의 상관관계를 시각적으로 표현하는데 유용하며, 많은 정보를 간단하게 파악할 수 있습니다.

이번 블로그 포스트에서는 Seaborn 히트맵을 만들고, 내부의 주석(annotation)과 셀 크기 조정에 대해 알아보도록 하겠습니다.

1. Seaborn 히트맵 생성하기

Seaborn 라이브러리를 사용하여 히트맵을 생성하는 방법은 간단합니다. 아래의 예제 코드를 통해 확인해보겠습니다.

import seaborn as sns

# 히트맵을 생성할 데이터셋 준비
data = [[1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]]

# 히트맵 생성
sns.heatmap(data)

위의 코드를 실행하면, 주어진 데이터를 기반으로 한 히트맵이 생성됩니다. 그러나 이 히트맵은 아직 주석이나 셀 크기 조정이 되지 않은 상태입니다.

2. 히트맵에 주석 추가하기

히트맵 내부에 각 셀에 해당하는 값의 주석을 추가할 수 있습니다. 이는 데이터의 특징이나 값을 부각시키거나, 보다 자세한 정보를 제공하기 위해 사용됩니다. 아래의 예제 코드를 통해 히트맵 내부에 주석을 추가하는 방법을 알아보겠습니다.

import seaborn as sns
import matplotlib.pyplot as plt

# 히트맵을 생성할 데이터셋 준비
data = [[1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]]

# 히트맵 생성
ax = sns.heatmap(data, annot=True, fmt=".1f")

# 주석 폰트 크기 조정
ax.set_yticklabels(ax.get_yticklabels(), rotation=0, fontsize=8)
ax.set_xticklabels(ax.get_xticklabels(), rotation=90, fontsize=8)

# 히트맵 출력
plt.show()

위의 코드에서 annot=True 옵션을 사용하여 주석을 추가했습니다. fmt=".1f"는 주석의 실수값을 소수점 한 자리까지 표시한다는 의미입니다. 또한, set_yticklabels()set_xticklabels()를 사용하여 주석의 행과 열 레이블의 크기와 방향을 조정하였습니다.

3. 히트맵의 셀 크기 조정하기

히트맵의 셀 크기를 조정하여 데이터의 시각적인 표현을 개선할 수 있습니다. 보통 히트맵을 생성할 때 sns.heatmap() 함수에 linewidthscbar_kws와 같은 옵션을 추가하여 셀 크기를 조정합니다. 아래의 예제 코드를 통해 셀 크기를 조정하는 방법을 알아보겠습니다.

import seaborn as sns
import matplotlib.pyplot as plt

# 히트맵을 생성할 데이터셋 준비
data = [[1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]]

# 히트맵 생성 및 셀 크기 조정
ax = sns.heatmap(data, linewidths=0.5, cbar_kws={"shrink": 0.5})

# 히트맵 출력
plt.show()

위의 예제 코드에서 linewidths=0.5는 셀간의 경계선의 굵기를 0.5로 설정한 것이고, cbar_kws={"shrink": 0.5}는 컬러바의 크기를 축소하는 것입니다. 이렇게 셀 크기와 컬러바 크기를 조정하여 히트맵을 보다 깔끔하고 시각적으로 명확하게 만들 수 있습니다.

이제 주석과 셀 크기 조정을 통해 히트맵을 꾸며볼 차례입니다. 원하는 유형의 데이터셋을 준비하고, Seaborn의 히트맵 함수를 사용하여 기본 히트맵을 생성한 후 주석과 셀 크기를 조정해보세요. 히트맵을 통해 데이터의 패턴이나 상관관계를 쉽게 파악할 수 있습니다.