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

Matplotlib imshow()로 NumPy 배열 시각화하는 방법 완벽 가이드

데이터 분석이나 머신러닝 작업을 하다 보면 NumPy 배열을 이미지 형태로 시각화해야 하는 경우가 자주 있습니다. Matplotlib의 imshow() 함수를 사용하면 2차원 배열을 손쉽게 히트맵 형태의 이미지로 표현할 수 있습니다. 이 글에서는 단계별로 그 방법을 알아보겠습니다.

구현 단계

  • 먼저 figure 크기를 설정하고, 서브플롯 주변과 사이의 여백(padding)을 조정합니다.
  • np.array를 사용하여 2차원 데이터 래스터(raster)를 생성합니다.
  • imshow() 메서드로 데이터를 2D 정규 래스터 위에 이미지 형태로 표시합니다.
  • 마지막으로 show() 메서드를 호출하여 figure를 화면에 출력합니다.

예제 코드

import numpy as np
from matplotlib import pyplot as plt

# figure 크기 및 자동 레이아웃 설정
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

# 2차원 데이터 배열 생성
data = np.array(
[[0.1, 0.7, 0.6, 0.3],
[0.2, 0.6, 0.5, 0.2],
[0.8, 0.3, 0.80, 0.01],
[0.3, 0.4, 0.2, 0.1]]
)

# 데이터를 이미지로 표시
plt.imshow(data, interpolation="nearest", cmap="RdYlGn_r")
plt.show()

코드 설명

위 예제에서 사용된 주요 파라미터는 다음과 같습니다.

  • interpolation="nearest": 각 픽셀 값을 그대로 표시하되 인접한 값으로 보간하지 않습니다. 데이터의 원래 값을 정확하게 확인할 때 유용합니다.
  • cmap="RdYlGn_r": 색상 맵(colormap)을 지정합니다. 'RdYlGn_r'은 빨강(Red)에서 노랑(Yellow), 초록(Green)으로 이어지는 색상 맵의 역순 버전으로, 낮은 값은 빨간색에 가깝고 높은 값은 초록색에 가깝게 표현됩니다.

실행 결과

코드를 실행하면 4×4 크기의 2차원 배열이 색상이 입혀진 격자 형태의 이미지로 출력됩니다. 각 셀의 값에 따라 색이 다르게 표시되므로, 데이터의 분포와 패턴을 한눈에 파악할 수 있습니다.

추가 팁

실무에서는 plt.colorbar()를 함께 사용하면 각 색상이 어떤 값 범위를 나타내는지 확인할 수 있어 더욱 유용합니다. 또한 cmap 값을 'viridis', 'hot', 'coolwarm' 등으로 변경하여 데이터 특성에 맞는 시각화 스타일을 선택할 수 있습니다.