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

Matplotlib hist2d 플롯에 컬러바(색상 막대) 추가하는 방법

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 히스토그램 옆에 데이터 밀도를 나타내는 컬러바가 함께 표시되어, 각 영역의 빈도 값을 색상으로 직관적으로 확인할 수 있습니다.