Python Matplotlib 로 도형 그리기

Beginner

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

소개

이 랩에서는 Python 의 Matplotlib 라이브러리를 사용하여 다양한 도형을 그리는 방법을 배웁니다. Matplotlib 는 Python 프로그래밍 언어와 수치 수학 확장 NumPy 를 위한 플로팅 라이브러리입니다. Tkinter, wxPython, Qt 또는 GTK 와 같은 범용 GUI 툴킷을 사용하여 애플리케이션에 플롯을 임베딩하기 위한 객체 지향 API 를 제공합니다.

VM 팁

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

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

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

라이브러리 임포트

Matplotlib 사용을 시작하기 전에 필요한 라이브러리를 임포트해야 합니다.

import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
import matplotlib.path as mpath

도형 정의

Matplotlib 를 사용하여 그릴 도형을 정의합니다. 이 예제에서는 원, 사각형, 웨지, 정다각형, 타원, 화살표, 경로 패치 및 팬시 박스 패치를 그립니다.

shapes = [
    mpatches.Circle((0, 0), 0.1, ec="none"),
    mpatches.Rectangle((-0.025, -0.05), 0.05, 0.1, ec="none"),
    mpatches.Wedge((0, 0), 0.1, 30, 270, ec="none"),
    mpatches.RegularPolygon((0, 0), 5, radius=0.1),
    mpatches.Ellipse((0, 0), 0.2, 0.1),
    mpatches.Arrow(-0.05, -0.05, 0.1, 0.1, width=0.1),
    mpatches.PathPatch(mpath.Path([(0, 0), (0.5, 0.5), (1, 0)], [1, 2, 2]), ec="none"),
    mpatches.FancyBboxPatch((-0.025, -0.05), 0.05, 0.1, ec="none",
                            boxstyle=mpatches.BoxStyle("Round", pad=0.02)),
]

도형 그리기

이제 shapes 리스트를 반복하고 플롯에 추가하여 Matplotlib 를 사용하여 도형을 그립니다.

fig, ax = plt.subplots()
for shape in shapes:
    ax.add_artist(shape)
plt.xlim([-0.5, 1.5])
plt.ylim([-0.5, 1.5])
plt.axis('off')
plt.show()

도형 사용자 정의

색상, 테두리 색상 및 투명도 (alpha) 와 같은 다양한 속성을 설정하여 도형을 사용자 정의할 수 있습니다.

shapes = [
    mpatches.Circle((0, 0), 0.1, color='red', alpha=0.5),
    mpatches.Rectangle((-0.025, -0.05), 0.05, 0.1, ec="none", color='green', alpha=0.5),
    mpatches.Wedge((0, 0), 0.1, 30, 270, ec="none", color='blue', alpha=0.5),
    mpatches.RegularPolygon((0, 0), 5, radius=0.1, color='orange', alpha=0.5),
    mpatches.Ellipse((0, 0), 0.2, 0.1, color='purple', alpha=0.5),
    mpatches.Arrow(-0.05, -0.05, 0.1, 0.1, width=0.1, color='yellow', alpha=0.5),
    mpatches.PathPatch(mpath.Path([(0, 0), (0.5, 0.5), (1, 0)], [1, 2, 2]), ec="none", color='pink', alpha=0.5),
    mpatches.FancyBboxPatch((-0.025, -0.05), 0.05, 0.1, ec="none", color='brown', alpha=0.5,
                            boxstyle=mpatches.BoxStyle("Round", pad=0.02)),
]

fig, ax = plt.subplots()
for shape in shapes:
    ax.add_artist(shape)
plt.xlim([-0.5, 1.5])
plt.ylim([-0.5, 1.5])
plt.axis('off')
plt.show()

플롯 저장

savefig 함수를 사용하여 플롯을 이미지 파일로 저장할 수 있습니다.

fig, ax = plt.subplots()
for shape in shapes:
    ax.add_artist(shape)
plt.xlim([-0.5, 1.5])
plt.ylim([-0.5, 1.5])
plt.axis('off')
plt.savefig('shapes.png')

요약

이 랩에서는 Python 의 Matplotlib 라이브러리를 사용하여 다양한 도형을 그리는 방법을 배웠습니다. 도형 정의, 도형 그리기, 도형 사용자 정의, 그리고 플롯을 이미지 파일로 저장하는 방법을 배웠습니다. Matplotlib 은 다양한 유형의 플롯을 그리기 위한 사용하기 쉬운 API 를 제공하며, 데이터 시각화에 널리 사용됩니다.