Python Matplotlib 를 이용한 도형 생성

Beginner

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

소개

이 튜토리얼은 Python Matplotlib 을 사용하여 원, 부채꼴 및 다각형을 생성하는 방법을 안내하도록 설계되었습니다. 사용자들은 또한 .collections.PatchCollection을 사용하여 생성된 도형을 시각화할 수 있습니다.

VM 팁

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

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

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

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

먼저, 필요한 라이브러리를 가져와야 합니다.

import matplotlib.pyplot as plt
import numpy as np

from matplotlib.collections import PatchCollection
from matplotlib.patches import Circle, Polygon, Wedge

Figure 와 축 생성

도형을 그리기 위해 figure 와 축을 생성합니다.

fig, ax = plt.subplots()

정점의 수와 도형의 수 정의

생성할 정점의 수와 도형의 수를 정의합니다.

resolution = 50  ## the number of vertices
N = 3

원 생성

Circle()을 사용하여 원을 생성하고 패치 (patches) 목록에 추가합니다.

x = np.random.rand(N)
y = np.random.rand(N)
radii = 0.1*np.random.rand(N)
patches = []
for x1, y1, r in zip(x, y, radii):
    circle = Circle((x1, y1), r)
    patches.append(circle)

부채꼴 생성

Wedge()를 사용하여 부채꼴을 생성하고 패치 (patches) 목록에 추가합니다.

x = np.random.rand(N)
y = np.random.rand(N)
radii = 0.1*np.random.rand(N)
theta1 = 360.0*np.random.rand(N)
theta2 = 360.0*np.random.rand(N)
for x1, y1, r, t1, t2 in zip(x, y, radii, theta1, theta2):
    wedge = Wedge((x1, y1), r, t1, t2)
    patches.append(wedge)

부채꼴에 제한 조건 추가

부채꼴에 제한 조건을 추가합니다.

patches += [
    Wedge((.3, .7), .1, 0, 360),             ## Full circle
    Wedge((.7, .8), .2, 0, 360, width=0.05),  ## Full ring
    Wedge((.8, .3), .2, 0, 45),              ## Full sector
    Wedge((.8, .3), .2, 45, 90, width=0.10),  ## Ring sector
]

다각형 생성

Polygon()을 사용하여 다각형을 생성하고 패치 (patches) 목록에 추가합니다.

for i in range(N):
    polygon = Polygon(np.random.rand(N, 2), closed=True)
    patches.append(polygon)

색상 설정 및 PatchCollection 생성

도형의 색상을 설정하고 PatchCollection()을 생성합니다.

colors = 100 * np.random.rand(len(patches))
p = PatchCollection(patches, alpha=0.4)
p.set_array(colors)
ax.add_collection(p)
fig.colorbar(p, ax=ax)

플롯 표시

플롯을 표시합니다.

plt.show()

요약

이 튜토리얼에서는 Python Matplotlib 을 사용하여 원, 부채꼴 및 다각형을 만드는 방법을 보여주었습니다. 또한 생성된 도형을 시각화하기 위해 .collections.PatchCollection을 사용하는 방법도 배웠습니다.