Matplotlib 에서 다각형 생성하기

Beginner

This tutorial is from open-source community. Access the source code

소개

Matplotlib 는 데이터 시각화를 위해 사용되는 Python 라이브러리입니다. 이 랩에서는 Matplotlib 를 사용하여 프로그래밍 방식으로 또는 대화형으로 다각형을 생성할 것입니다. 다각형은 관심 영역을 강조하거나 플롯의 특정 영역을 마스킹하는 데 사용될 수 있습니다.

VM 팁

VM 시작이 완료되면 왼쪽 상단을 클릭하여 Notebook 탭으로 전환하여 실습을 위해 Jupyter Notebook에 액세스하십시오.

때로는 Jupyter Notebook 이 로딩을 완료하는 데 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한 사항으로 인해 작업의 유효성 검사는 자동화될 수 없습니다.

학습 중에 문제가 발생하면 언제든지 Labby 에게 문의하십시오. 세션 후 피드백을 제공해주시면 문제를 즉시 해결해 드리겠습니다.

필요한 라이브러리 가져오기

Matplotlib 를 사용하기 전에 필요한 라이브러리를 가져와야 합니다. 이 랩에서는 matplotlib.pyplotmatplotlib.widgets를 사용할 것입니다.

import matplotlib.pyplot as plt
from matplotlib.widgets import PolygonSelector

프로그래밍 방식으로 다각형 생성

프로그래밍 방식으로 다각형을 생성하려면 Figure 객체와 Axes 객체를 생성해야 합니다. 그런 다음 PolygonSelector 객체를 생성하고 정점을 추가할 수 있습니다. 마지막으로, Axes에 다각형을 플롯할 수 있습니다.

fig, ax = plt.subplots()
selector = PolygonSelector(ax, lambda *args: None)

## Add three vertices
selector.verts = [(0.1, 0.4), (0.5, 0.9), (0.3, 0.2)]

## Plot the polygon
ax.add_patch(plt.Polygon(selector.verts, alpha=0.3))
plt.show()

대화형으로 다각형 생성

대화형으로 다각형을 생성하려면 Figure 객체와 Axes 객체를 생성해야 합니다. 그런 다음, 플롯을 클릭하여 PolygonSelector 객체를 생성하고 정점을 추가할 수 있습니다. 또한 shiftctrl 키를 사용하여 정점을 이동할 수 있습니다.

fig, ax = plt.subplots()
selector = PolygonSelector(ax, lambda *args: None)

print("다각형을 생성하려면 그림을 클릭하십시오.")
print("'esc' 키를 눌러 새 다각형을 시작하십시오.")
print("모든 정점을 이동하려면 'shift' 키를 누르고 시도하십시오.")
print("단일 정점을 이동하려면 'ctrl' 키를 누르고 시도하십시오.")

plt.show()

모든 것을 함께 묶기

프로그래밍 방식과 대화형 방식으로 다각형을 생성하는 두 가지 방법을 모두 포함하는 완전한 예제를 만들어 보겠습니다.

import matplotlib.pyplot as plt
from matplotlib.widgets import PolygonSelector

## Create a figure and axes
fig, (ax1, ax2) = plt.subplots(ncols=2, figsize=(10, 5))

## Create a PolygonSelector object and add vertices
selector1 = PolygonSelector(ax1, lambda *args: None)
selector1.verts = [(0.1, 0.4), (0.5, 0.9), (0.3, 0.2)]

## Plot the polygon
ax1.add_patch(plt.Polygon(selector1.verts, alpha=0.3))

## Create another PolygonSelector object for interactive creation
selector2 = PolygonSelector(ax2, lambda *args: None)

print("다각형을 생성하려면 그림을 클릭하십시오.")
print("'esc' 키를 눌러 새 다각형을 시작하십시오.")
print("모든 정점을 이동하려면 'shift' 키를 누르고 시도하십시오.")
print("단일 정점을 이동하려면 'ctrl' 키를 누르고 시도하십시오.")

plt.show()

요약

이 랩에서는 Matplotlib 을 사용하여 프로그래밍 방식과 대화형 방식으로 다각형을 생성하는 방법을 배웠습니다. 또한 PolygonSelector 객체에 정점을 추가하고 결과 다각형을 Axes에 플롯하는 방법도 배웠습니다. 이 지식은 관심 영역을 강조 표시하거나 플롯에서 특정 영역을 마스킹하는 데 유용할 수 있습니다.