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

Matplotlib에서 여러 개의 컬러바(Colorbar)를 표시하는 방법

개요

데이터 시각화 작업을 하다 보면 서로 다른 데이터셋을 각각의 컬러바와 함께 한 화면에 비교해야 하는 경우가 자주 있습니다. Matplotlib에서는 imshow()colorbar()를 조합하면 여러 개의 컬러바를 손쉽게 표시할 수 있습니다.

구현 단계

  • 그림(figure) 크기를 설정하고, 서브플롯 사이 및 주변의 여백(padding)을 조정합니다.
  • 하나의 figure 객체와 서브플롯(subplots) 집합을 생성합니다.
  • 샘플 데이터의 개수를 지정할 변수 N을 초기화합니다.
  • NumPy를 사용하여 무작위 데이터 data1을 생성합니다.
  • data1imshow() 메서드로 2D 래스터(raster) 형태의 이미지처럼 표시합니다.
  • colorbar() 메서드로 플롯에 컬러바를 추가합니다.
  • 서로 다른 데이터셋과 축(ax)을 사용하여 위의 데이터 생성 → 이미지 표시 → 컬러바 추가 과정을 반복합니다.
  • show() 메서드를 호출하여 최종 그림을 화면에 출력합니다.

예제 코드

from matplotlib import pyplot as plt
import numpy as np

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

fig, (ax1, ax2) = plt.subplots(nrows=2, ncols=1)

N = 10
data1 = np.random.rand(N, N)
im1 = ax1.imshow(data1, cmap='hot')
plt.colorbar(im1, cax=ax1)

data2 = np.random.rand(N, N)
im2 = ax2.imshow(data2, cmap='plasma')
plt.colorbar(im2, cax=ax2)

plt.show()

코드 설명

위 예제에서는 nrows=2, ncols=1 옵션으로 세로 방향으로 두 개의 서브플롯(ax1, ax2)을 만들었습니다. 각 축에는 NumPy로 생성한 10×10 크기의 무작위 데이터를 서로 다른 컬러맵('hot', 'plasma')으로 표시하고, cax 인자를 통해 해당 축에 각각의 컬러바를 연결했습니다. 이렇게 하면 두 개의 독립적인 컬러바가 함께 나타나 데이터 값을 직관적으로 비교할 수 있습니다.

실행 결과

Matplotlib에서 여러 개의 컬러바(Colorbar)를 표시하는 방법