Matplotlib에서 원을 그리는 방법
Suraj Joshi
2023년1월30일
Matplotlib
에서 원을 그리려면 다음 방법 중 하나를 사용할 수 있습니다.
matplotlib.patches.Circle()
메소드
- 원 방정식
- 점의 산포도
Matplotlib에서 원을 그리는 matplotlib.patches.Circle()
메소드
통사론:
matplotlib.patches.Circle((x, y), r=5, **kwargs)
여기서(x, y)
는 원의 중심이고r
은 기본값이5
인 반지름입니다.
Circle
은Artist
의 서브 클래스이므로add_artist
메소드로 축에Circle
을 추가해야합니다.
import matplotlib.pyplot as plt
figure, axes = plt.subplots()
draw_circle = plt.Circle((0.5, 0.5), 0.3)
axes.set_aspect(1)
axes.add_artist(draw_circle)
plt.title("Circle")
plt.show()
색상을 채우지 않고 원을 그리려면fill
매개 변수를 False
로 설정해야합니다.
import matplotlib.pyplot as plt
figure, axes = plt.subplots()
draw_circle = plt.Circle((0.5, 0.5), 0.3, fill=False)
axes.set_aspect(1)
axes.add_artist(draw_circle)
plt.title("Circle")
plt.show()
gcf()
와gca()
함수를 사용하여 원을 기존 플롯에 빠르게 연결하여 위 코드를 더 간단하게 만들 수 있습니다.
import matplotlib.pyplot as plt
figure, axes = plt.subplots()
draw_circle = plt.Circle((0.5, 0.5), 0.3, fill=False)
plt.gcf().gca().add_artist(draw_circle)
plt.title("Circle")
axes.set_aspect(1)
plt.show()
Matplotlib에서 원을 그리는 원 방정식
원의 파라 메트릭 방정식
원의 파라 메트릭 방정식은x=r*cos(theta)
및y=r*sin(theta)
입니다.
import numpy as np
import matplotlib.pyplot as plt
theta = np.linspace(0, 2 * np.pi, 100)
radius = 0.3
a = radius * np.cos(theta)
b = radius * np.sin(theta)
figure, axes = plt.subplots(1)
axes.plot(a, b)
axes.set_aspect(1)
plt.title("Circle using Parametric Equation")
plt.show()
원 방정식의 중심 반경 형태
원반의 중심 반경 형태를 사용하여 원을 그릴 수도 있습니다.
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-0.5, 0.5, 100)
y = np.linspace(-0.5, 0.5, 100)
a, b = np.meshgrid(x, y)
C = a ** 2 + b ** 2 - 0.2
figure, axes = plt.subplots()
axes.contour(a, b, C, [0])
axes.set_aspect(1)
plt.show()
산점도
scatter()
메소드를 사용하여 Matplotlib에 원을 그리고s
매개 변수를 사용하여 반지름을 조정할 수도 있습니다. 원의 넓이는pi/4*s
입니다.
import matplotlib.pyplot as plt
plt.scatter(0, 0, s=4000)
plt.title("Circle")
plt.xlim(-0.75, 0.75)
plt.ylim(-0.75, 0.75)
plt.show()
작가: Suraj Joshi
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn