데이터 시각화에서 다각형(Polygon)의 내부 영역을 색으로 채워야 하는 경우가 자주 있습니다. Python의 대표적인 시각화 라이브러리인 matplotlib를 활용하면 몇 줄의 코드만으로 다각형 영역을 손쉽게 채울 수 있습니다. 이 글에서는 Polygon과 PatchCollection을 사용하여 다각형 내부를 채우는 방법을 단계별로 살펴보겠습니다.
구현 단계
그림(figure) 크기를 설정하고 서브플롯(subplot) 주변 및 사이의 여백(padding)을 조정합니다.
plt.subplots()를 사용해 figure와 subplot 집합을 생성합니다.Polygon클래스의 인스턴스를 생성하여 다각형 객체를 만듭니다.다각형 객체들을 담을 수 있는
PatchCollection(패치 모음) 인스턴스를 생성합니다.add_collection()메서드를 사용해 컬렉션을 축(axes)에 추가하고, 해당 컬렉션을 반환받습니다.show()메서드를 호출하여 그림을 화면에 표시합니다.
예제 코드
import matplotlib.pyplot as plt from matplotlib.collections import PatchCollection from matplotlib.patches import Polygon import numpy as np # 그림 크기 및 자동 레이아웃 설정 plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True # figure와 axes 생성 fig, ax = plt.subplots(1) # 무작위 좌표 6개로 닫힌 다각형 생성 closed=True, alpha=1) # PatchCollection으로 다각형 묶기 collection = PatchCollection([polygon]) # 축에 컬렉션 추가 ax.add_collection(collection) plt.show()
실행 결과
위 코드를 실행하면 무작위로 생성된 6개의 꼭짓점 좌표를 연결한 닫힌 다각형이 그려지며, 다각형의 내부 영역이 기본 색상으로 채워진 결과를 확인할 수 있습니다.
코드 핵심 포인트
Polygon(np.random.rand(6, 2), closed=True): numpy로 생성한 6×2 크기의 무작위 좌표 배열을 꼭짓점으로 사용하며,
closed=True옵션으로 시작점과 끝점을 연결해 닫힌 형태를 만듭니다.PatchCollection: 여러 개의 패치(다각형, 원 등)를 하나의 객체로 묶어 관리할 수 있게 해주는 컬렉션 클래스입니다.
ax.add_collection(): 생성한 컬렉션을 실제 축에 추가하는 역할을 하며, 이 과정을 거쳐야 화면에 다각형이 나타납니다.
이 방식을 응용하면 여러 개의 다각형을 한 번에 추가하거나, facecolor, edgecolor, alpha 등의 옵션을 조절해 다양한 스타일의 시각화를 구현할 수 있습니다.