imshow() — 히트맵
행렬 데이터를 색상으로 표현합니다. 상관관계 매트릭스나 시간대별 패턴 분석에 자주 사용됩니다.
import matplotlib.pyplot as pltimport numpy as npimport matplotlibimport platformmatplotlib.rcParams['font.family'] = {'Windows': 'Malgun Gothic', 'Darwin': 'AppleGothic'}.get(platform.system(), 'NanumGothic')matplotlib.rcParams['axes.unicode_minus'] = False# 요일 × 시간대별 방문자 수days = ['월', '화', '수', '목', '금', '토', '일']hours = ['9시', '10시', '11시', '12시', '13시', '14시', '15시', '16시', '17시']np.random.seed(42)data = np.random.randint(50, 500, size=(len(days), len(hours)))# 주말 오후 강조data[5, 3:7] += 300data[6, 3:7] += 250fig, ax = plt.subplots(figsize=(11, 5))im = ax.imshow(data, cmap='YlOrRd', aspect='auto')# 컬러바cbar = plt.colorbar(im, ax=ax)cbar.set_label('방문자 수')# 축 레이블ax.set_xticks(range(len(hours)))ax.set_xticklabels(hours)ax.set_yticks(range(len(days)))ax.set_yticklabels(days)ax.set_title('요일 × 시간대별 방문자 수', fontsize=14)# 각 셀에 값 표시for i in range(len(days)): for j in range(len(hours)): ax.text(j, i, str(data[i, j]), ha='center', va='center', fontsize=8, color='black' if data[i, j] < 400 else 'white')plt.tight_layout()plt.show()

