matplotlib.pyplot에서 hist2d로 그린 2D 히스토그램과 함께 컬러바(colorbar)를 사용하려면 다음 단계를 따르면 됩니다.
단계별 진행 과정
그림(figure) 크기를 설정하고, 서브플롯(subplot) 사이 및 주변의 여백(padding)을 조정합니다.
샘플 데이터의 개수를 지정하는 변수 "N"을 초기화합니다.
numpy를 사용해 x, y 데이터 포인트를 생성합니다.
subplots() 메서드를 호출하여 figure와 서브플롯 집합을 만듭니다.
hist2d() 함수를 사용해 x, y 데이터의 2D 히스토그램을 그립니다.
hist2d가 반환하는 스칼라 맵핑 가능(ScalarMappable) 객체를 기반으로 컬러바를 생성합니다.
그림을 화면에 표시하려면 show() 메서드를 호출합니다.
예제 코드
from matplotlib.colors import LogNorm import matplotlib.pyplot as plt import numpy as np # 그림 크기 설정 plt.rcParams["figure.figsize"] = [7.00, 3.50] plt.rcParams["figure.autolayout"] = True # 샘플 데이터 개수 N = 1000 # x, y 데이터 포인트 생성 x = np.random.rand(N) y = np.random.rand(N) fig, ax = plt.subplots() # x, y 데이터로 2D 히스토그램 그리기 hh = ax.hist2d(x, y, bins=40, norm=LogNorm()) # 컬러바 추가 fig.colorbar(hh[3], ax=ax) # 플롯 표시 plt.show()
주요 코드 설명
ax.hist2d(x, y, bins=40, norm=LogNorm())는 40개의 빈(bin)으로 구성된 2D 히스토그램을 반환하며, 반환값은 네 가지 요소를 담은 튜플입니다 — 히스토그램 값 배열, x축 빈 경계, y축 빈 경계, 그리고 컬러바 생성에 필요한 QuadMesh 객체입니다. 이 예제에서는 hh[3](네 번째 요소)를 fig.colorbar()에 전달하여 히스토그램 옆에 색상 기준 막대를 표시합니다. 또한 LogNorm()을 적용하면 값의 분포 차이가 클 때 로그 스케일로 색상이 정규화되어 낮은 빈도 영역도 시각적으로 잘 구분됩니다.
실행 결과
위 코드를 실행하면 아래와 같이 2D 히스토그램과 오른쪽에 컬러바가 함께 표시된 그림이 출력됩니다.
