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

Matplotlib에서 점 집합으로 가장 큰 다각형 그리는 방법

Matplotlib에서 주어진 점 집합을 이용해 가장 큰 다각형을 그리려면 matplotlib.patches 모듈의 Polygon 클래스를 활용하면 됩니다. 아래에서 단계별로 살펴보겠습니다.

구현 단계

  • matplotlib.patches에서 Polygon을 임포트합니다.
  • 그림 크기를 설정하고 서브플롯 주변의 여백(padding)을 자동으로 조정합니다.
  • 다각형을 구성할 데이터 포인트 목록을 생성합니다. 각 점이 순서대로 연결되어 가장 큰 외곽 다각형을 형성합니다.
  • 해당 좌표 배열로 Polygon 인스턴스를 만듭니다.
  • figure와 subplot 집합을 생성합니다.
  • Polygon 패치(patch)를 축(ax)에 추가합니다.
  • x축과 y축의 표시 범위(limit)를 지정합니다.
  • show() 메서드를 호출하여 그림을 화면에 출력합니다.

예제 코드

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon

plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

# 다각형을 구성할 정점(vertex) 좌표 목록
y = np.array([[1, 1], [0.5, 1.5], [2, 1], [1, 2], [2, 2]])

# 검은색으로 채워진 다각형 인스턴스 생성
p = Polygon(y, facecolor='k')

fig, ax = plt.subplots()
ax.add_patch(p)

ax.set_xlim([0, 3])
ax.set_ylim([0, 3])

plt.show()

실행 결과

위 코드를 실행하면 입력한 점들을 순서대로 연결하여 만들어진 다각형이 검은색으로 채워진 채 그려집니다. 점들의 배치에 따라 다각형의 모양이 결정되며, 좌표 순서가 곧 다각형의 외곽선 경로가 된다는 점에 유의하세요.

Matplotlib에서 점 집합으로 가장 큰 다각형 그리는 방법Matplotlib에서 점 집합으로 가장 큰 다각형 그리는 방법

추가 팁

  • 점들이 무작위 순서로 주어진 경우, 볼록 껍질(convex hull) 알고리즘(예: SciPy의 scipy.spatial.ConvexHull)을 사용해 정점 순서를 먼저 정렬하면 더 깔끔한 결과를 얻을 수 있습니다.
  • facecolor, edgecolor, alpha 등의 매개변수를 조절해 다각형의 색상과 투명도를 자유롭게 변경할 수 있습니다.