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

Matplotlib에서 별도의 서브플롯에 pcolor 컬러바(Colorbar)를 표시하는 방법

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 색상 체계로 렌더링됩니다.