Matplotlib을 사용하면 참/거짓(True/False) 또는 활성/비활성(Active/Inactive)과 같은 이진(Boolean) 데이터를 이미지 형태로 손쉽게 시각화할 수 있습니다. imshow() 함수를 활용하면 불리언 값으로 구성된 2차원 배열을 컬러 맵(color map)이 적용된 래스터 이미지로 표현할 수 있습니다.
구현 단계
- figure.figsize와 figure.autolayout rcParams를 설정하여 그림 크기와 서브플롯 간 여백(padding)을 조정합니다.
- NumPy의 난수 배열에 조건 비교를 적용해 True 또는 False로만 구성된 데이터를 생성합니다.
- figure() 메서드를 사용해 새 그림을 생성하거나 기존 그림을 활성화합니다.
- add_subplot() 메서드로 그림에 '~.axes.Axes' 축을 서브플롯 형태로 추가합니다.
- imshow() 메서드를 사용해 데이터를 2D 래스터 이미지로 화면에 표시합니다.
- show() 메서드를 호출해 최종 그림을 출력합니다.
예제 코드
import matplotlib.pyplot as plt import numpy as np plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True # 20x20 크기의 난수 배열을 생성하고 0.5보다 큰 값을 True로 변환 data = np.random.random((20, 20)) > 0.5 fig = plt.figure() ax = fig.add_subplot(111) ax.imshow(data, aspect='auto', cmap="copper", interpolation='nearest') plt.show()
출력 결과

코드 설명 및 추가 팁
위 예제에서 핵심 부분은 다음 코드입니다:
data = np.random.random((20, 20)) > 0.5
NumPy의 random.random() 함수는 0과 1 사이의 실수 난수로 채워진 20×20 배열을 생성합니다. 여기에 비교 연산자(>)를 적용하면 각 요소가 0.5보다 큰지 여부에 따라 True 또는 False 값을 갖는 불리언 배열이 만들어집니다. Matplotlib은 이러한 불리언 값을 자동으로 1과 0으로 해석하여 색상으로 매핑합니다.
cmap 인자에는 'copper' 외에도 'binary', 'gray', 'viridis' 등 다양한 컬러 맵을 지정할 수 있습니다. 특히 참/거짓 데이터를 명확하게 구분하고 싶다면 'binary' 컬러 맵을 사용하는 것이 좋습니다. 또한 interpolation='nearest' 옵션은 각 셀 경계가 흐릿해지는 것을 방지하여 픽셀 단위의 선명한 결과를 얻을 수 있게 해줍니다.