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

Matplotlib.pyplot에서 hist2d와 컬러바(colorbar) 함께 사용하는 방법


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 히스토그램과 오른쪽에 컬러바가 함께 표시된 그림이 출력됩니다.

Matplotlib.pyplot에서 hist2d와 컬러바(colorbar) 함께 사용하는 방법