Seaborn으로 그린 히트맵(heatmap)의 각 셀에 해당 데이터 값을 주석 형태로 표시하고 싶다면, heatmap() 메서드에서 annot=True 옵션을 사용하면 됩니다. 이 옵션 하나만으로 각 셀 안에 실제 수치가 자동으로 출력되어, 색상만으로는 파악하기 어려운 정확한 값을 한눈에 확인할 수 있습니다.
구현 단계
- 그림(figure) 크기를 설정하고, 서브플롯 주변과 사이의 여백(padding)을 조정합니다.
- Pandas를 이용해 5개의 열(column)을 가진 데이터프레임을 생성합니다.
- sns.heatmap() 함수로 데이터프레임을 시각화하면서, 인자에 annot=True 플래그를 지정합니다.
- plt.show() 메서드를 호출해 최종 그림을 화면에 출력합니다.
예제 코드
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
df = pd.DataFrame(np.random.random((5, 5)), columns=["a", "b", "c", "d", "e"])
sns.heatmap(df, annot=True, annot_kws={"size": 7})
plt.show()추가 팁: 주석 스타일 조정하기
위 예제에서 사용된 annot_kws 매개변수를 활용하면 셀 안에 표시되는 주석 텍스트의 세부 스타일을 자유롭게 조절할 수 있습니다. 예를 들어 {"size": 7}은 글자 크기를 7포인트로 지정하는 것이며, 이외에도 color(글자색), fontweight(굵기) 등 Matplotlib의 텍스트 속성을 함께 사용할 수 있습니다.
또한 소수점 자릿수를 정리하고 싶다면 fmt 매개변수를 함께 사용하면 좋습니다. 예를 들어 fmt=".2f"로 지정하면 각 셀의 값이 소수 둘째 자리까지 반올림되어 깔끔하게 표시됩니다.
실행 결과
코드를 실행하면 5×5 크기의 무작위 데이터로 구성된 히트맵이 생성되며, 각 셀의 색상 위에 해당하는 실제 수치가 작은 글씨로 함께 표시됩니다. 이를 통해 데이터의 대략적인 분포는 색상으로, 정확한 값은 주석으로 동시에 확인할 수 있어 데이터 분석 및 보고서 작성 시 유용하게 활용됩니다.