Matplotlib에서 pcolor 컬러바(colorbar)를 각 서브플롯에 함께 표시하려면 아래 단계를 따르면 됩니다.
구현 단계
- 그림(figure) 크기를 설정하고, 서브플롯 사이와 주변의 여백(padding)을 조정합니다.
- 2행 2열 구조의 figure와 서브플롯 세트를 생성합니다.
- 사용할 컬러맵(colormap) 목록을 만듭니다.
- 각 축(axis)을 순회하면서 비정형(non-regular) 직사각형 그리드 위에 유사 컬러(pseudocolor) 플롯을 그립니다.
- pcolormesh가 사용된 동일한 축에 컬러바를 추가합니다.
- 마지막으로 show() 메서드를 호출하여 그림을 화면에 출력합니다.
예제 코드
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
fig, axs = plt.subplots(2, 2)
cm = ['plasma', 'copper']
for col in range(2):
for row in range(2):
ax = axs[row, col]
pcm = ax.pcolormesh(np.random.random((20, 20)) * (col + 1), cmap=cm[col])
fig.colorbar(pcm, ax=ax)
plt.show()코드 설명
위 코드는 2×2 형태로 총 네 개의 서브플롯을 생성합니다. 왼쪽 열(col=0)에는 plasma 컬러맵이, 오른쪽 열(col=1)에는 copper 컬러맵이 적용됩니다. 각 셀에는 20×20 크기의 난수 배열을 기반으로 pcolormesh 플롯이 그려지며, 오른쪽 열의 데이터에는 값 범위를 넓히기 위해 2가 곱해집니다.
핵심은 fig.colorbar(pcm, ax=ax) 부분입니다. 이렇게 하면 컬러바가 해당 플롯과 같은 축에 연결되어, 각 서브플롯 옆에 개별적인 컬러바가 자동으로 배치되고 레이아웃도 자동으로 조정됩니다.
실행 결과
코드를 실행하면 2행 2열의 서브플롯이 나타나고, 각 플롯 옆에는 해당 데이터의 값 범위를 나타내는 컬러바가 함께 표시됩니다. 왼쪽 두 플롯은 plasma 색상 체계로, 오른쪽 두 플롯은 copper 색상 체계로 렌더링됩니다.