개요
데이터 시각화 작업을 하다 보면 서로 다른 데이터셋을 각각의 컬러바와 함께 한 화면에 비교해야 하는 경우가 자주 있습니다. Matplotlib에서는 imshow()와 colorbar()를 조합하면 여러 개의 컬러바를 손쉽게 표시할 수 있습니다.
구현 단계
- 그림(figure) 크기를 설정하고, 서브플롯 사이 및 주변의 여백(padding)을 조정합니다.
- 하나의 figure 객체와 서브플롯(subplots) 집합을 생성합니다.
- 샘플 데이터의 개수를 지정할 변수 N을 초기화합니다.
- NumPy를 사용하여 무작위 데이터 data1을 생성합니다.
- data1을 imshow() 메서드로 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 인자를 통해 해당 축에 각각의 컬러바를 연결했습니다. 이렇게 하면 두 개의 독립적인 컬러바가 함께 나타나 데이터 값을 직관적으로 비교할 수 있습니다.
실행 결과
