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

Python Matplotlib로 다각형(Polygon) 내부 영역을 채우는 방법 완벽 가이드

데이터 시각화에서 다각형(Polygon)의 내부 영역을 색으로 채워야 하는 경우가 자주 있습니다. Python의 대표적인 시각화 라이브러리인 matplotlib를 활용하면 몇 줄의 코드만으로 다각형 영역을 손쉽게 채울 수 있습니다. 이 글에서는 PolygonPatchCollection을 사용하여 다각형 내부를 채우는 방법을 단계별로 살펴보겠습니다.

구현 단계

  • 그림(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 등의 옵션을 조절해 다양한 스타일의 시각화를 구현할 수 있습니다.