Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Seaborn 히트맵 주석 형식(fmt) 쉽게 이해하고 활용하는 방법

데이터 시각화에서 히트맵(heatmap)은 행렬 형태의 데이터를 색상으로 직관적으로 표현할 수 있는 강력한 도구입니다. 특히 Seaborn 라이브러리의 sns.heatmap() 함수는 각 셀에 숫자 값을 함께 표시하는 주석(annot) 기능을 제공하며, fmt 파라미터를 통해 이 숫자의 출력 형식을 자유롭게 지정할 수 있습니다.

이 글에서는 Seaborn 히트맵의 주석 형식을 설정하는 방법을 단계별로 살펴보겠습니다.

히트맵 주석 형식 설정 단계

  • 그림 크기 설정: 먼저 figure 크기를 지정하고, 서브플롯 사이와 주변의 여백(padding)을 조정합니다.
  • 데이터프레임 생성: Pandas를 사용해 5개의 열(a, b, c, d, e)을 가진 데이터프레임을 만듭니다.
  • 히트맵 그리기: sns.heatmap()으로 데이터를 색상 인코딩된 행렬로 시각화합니다. 이때 fmt=".2%"가 바로 주석의 표시 형식을 결정합니다.
  • 그래프 출력: plt.show() 메서드로 최종 결과를 화면에 표시합니다.

fmt 파라미터란?

fmt는 Python 문자열 포매팅 규칙을 따르며, 대표적인 옵션은 다음과 같습니다.

  • ".2f" — 소수점 둘째 자리까지 고정 소수점으로 표시 (예: 0.53)
  • ".2%" — 백분율로 변환해 소수점 둘째 자리까지 표시 (예: 53.12%)
  • "d" — 정수 형태로 표시

이 예제에서는 fmt=".2%"를 사용하므로, 0~1 사이의 난수 값이 백분율 형태로 각 셀에 표시됩니다.

전체 예제 코드

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

# 그림 크기 및 자동 레이아웃 설정
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

# 5x5 난수 데이터프레임 생성
df = pd.DataFrame(np.random.random((5, 5)), columns=["a", "b", "c", "d", "e"])

# 히트맵 그리기: 주석 표시, 폰트 크기 7, 백분율 형식 적용
sns.heatmap(df, annot=True, annot_kws={"size": 7}, fmt=".2%")

plt.show()

코드 설명

  • annot=True: 각 셀에 해당하는 수치 값을 텍스트로 표시합니다.
  • annot_kws={"size": 7}: 주석 텍스트의 폰트 크기를 7포인트로 지정합니다. 값이 많을 때는 폰트를 줄여 가독성을 확보하는 것이 좋습니다.
  • fmt=".2%": 주석 값을 백분율 형식(소수점 둘째 자리)으로 변환해 표시합니다.

실행 결과

코드를 실행하면 5×5 크기의 히트맵이 생성되고, 각 셀에는 색상 농도에 대응하는 값이 백분율 형식(예: 42.37%)으로 함께 표시됩니다. 색상이 진할수록 값이 크고, 연할수록 값이 작음을 한눈에 파악할 수 있습니다.

마무리

Seaborn 히트맵에서 annotfmt 옵션을 활용하면 색상 정보만으로는 전달하기 어려운 정확한 수치를 함께 보여줄 수 있습니다. 상관관계 분석, 피벗 테이블 시각화 등 다양한 상황에서 fmt 형식을 상황에 맞게 조절해 보세요.