hist2d 플롯에 컬러바(colorbar, 색상 막대)를 추가하려면 colorbar() 메서드의 인자로 스칼라 맵핑 가능 객체(scalar mappable object)를 전달하면 됩니다.
구현 단계
- numpy를 사용하여 x, y 데이터 포인트를 생성합니다.
subplots()메서드로 figure와 서브플롯을 생성합니다.hist2d()메서드를 사용하여 2D 히스토그램 플롯을 그립니다.- hist2d의 스칼라 맵핑 가능 객체(scalar mappable) 인스턴스를 기반으로 컬러바를 생성합니다.
show()메서드를 사용하여 figure를 화면에 표시합니다.
예제 코드
import numpy as np from matplotlib import pyplot as plt, colors plt.rcParams["figure.figsize"] = [7.00, 3.50] plt.rcParams["figure.autolayout"] = True x = np.random.randn(100) y = np.random.randn(100) + 5 fig, ax = plt.subplots() hh = ax.hist2d(x, y, bins=40, norm=colors.LogNorm()) fig.colorbar(hh[3], ax=ax) plt.show()
위 코드에서 주목할 점은 ax.hist2d()가 반환하는 튜플의 네 번째 요소인 hh[3]입니다. 이 값이 바로 2D 히스토그램의 이미지 객체로, 컬러바 생성에 필요한 스칼라 맵핑 가능 객체 역할을 합니다. 또한 colors.LogNorm()을 적용하여 색상 분포를 로그 스케일로 정규화하면, 값의 편차가 큰 데이터도 시각적으로 더 잘 구분됩니다.
실행 결과
코드를 실행하면 2D 히스토그램 옆에 데이터 밀도를 나타내는 컬러바가 함께 표시되어, 각 영역의 빈도 값을 색상으로 직관적으로 확인할 수 있습니다.