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

Matplotlib에서 NaN 값 시각화하기: 플롯 및 활용 방법

데이터 분석을 하다 보면 결측치(NaN)가 포함된 배열을 시각화해야 하는 경우가 자주 있습니다. Matplotlib는 이러한 NaN 값을 별도의 전처리 없이도 자동으로 처리하여 표시할 수 있으며, NaN이 있는 위치는 기본적으로 흰색(또는 컬러맵에 따라 'bad' 색상)으로 나타납니다.


아래 단계를 따라 Matplotlib에서 NaN 값이 포함된 데이터를 플롯하고 활용하는 방법을 알아보겠습니다.

NaN 값 플로팅 절차

  • NaN 값이 포함된 데이터 생성: NumPy를 사용하여 일부 요소가 np.NAN인 2차원 배열을 만듭니다.

  • imshow() 메서드로 데이터 표시: imshow() 함수를 사용하면 데이터를 이미지 형태, 즉 2D 정규 래스터(raster) 위에 컬러맵과 함께 시각화할 수 있습니다.

  • show() 메서드로 그래프 출력: 완성된 그림(figure)을 화면에 표시합니다.

예제 코드

import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
data = np.array([[1., 1.2, 0.89, np.NAN],
    [1.2, np.NAN, 1.89, 2.09],
    [.78, .67, np.NAN, 1.78],
    [np.NAN, 1.56, 1.89, 2.78]]
)
plt.imshow(data, cmap="gist_rainbow_r")
plt.show()

실행 결과

위 코드를 실행하면 4×4 크기의 배열이 컬러맵(gist_rainbow_r)으로 색상이 입혀진 이미지 형태로 출력됩니다. NaN 값이 들어간 셀은 색상 없이 빈 영역으로 표시되어, 결측치의 위치를 한눈에 파악할 수 있습니다.


Matplotlib에서 NaN 값 시각화하기: 플롯 및 활용 방법


추가 팁: NaN 색상 변경하기

컬러맵 객체의 set_bad() 메서드를 사용하면 NaN 값이 표시되는 색상을 원하는 대로 지정할 수 있습니다. 예를 들어 다음과 같이 작성하면 결측치가 회색으로 표시됩니다.

cmap = plt.cm.gist_rainbow_r.copy()
cmap.set_bad(color='gray')
plt.imshow(data, cmap=cmap)

이처럼 Matplotlib에서는 NaN 값을 오류 없이 자연스럽게 처리하므로, 결측치 패턴을 시각적으로 확인하는 데 매우 유용합니다.