Matplotlib에서 원 안에 텍스트를 배치하는 것은 Circle 패치와 text() 메서드를 조합하면 간단하게 구현할 수 있습니다. 이 글에서는 단계별 절차와 함께 실제 동작하는 코드 예제를 소개합니다.
구현 단계
figure() 메서드를 사용해 새 그림(Figure)을 생성하거나 기존 그림을 활성화합니다.
add_subplot() 메서드로 현재 축(Axes)에 서브플롯을 추가합니다.
Circle() 클래스를 사용해 원(Circle) 인스턴스를 생성합니다.
add_patch() 메서드로 플롯 위에 원 패치를 추가합니다.
원 안에 텍스트를 배치하려면 text() 메서드를 사용합니다.
xlim()과 ylim() 메서드로 x축과 y축의 표시 범위를 설정합니다.
axis('equal')을 지정하면 원이 찌그러지지 않고 정확한 원형으로 표시됩니다.
그림을 화면에 표시하려면 show() 메서드를 호출합니다.
예제 코드
import matplotlib
from matplotlib import pyplot as plt, patches
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
fig = plt.figure()
ax = fig.add_subplot(111)
circle = matplotlib.patches.Circle((0, 0), radius=1, color='yellow')
ax.add_patch(circle)
plt.text(-.25, 0, "This is a Circle")
plt.xlim([-4, 4])
plt.ylim([-4, 4])
plt.axis('equal')
plt.show()코드 설명
Circle((0, 0), radius=1)은 좌표 (0, 0)을 중심으로 하고 반지름이 1인 원을 의미합니다. 색상은 color='yellow' 옵션으로 노란색으로 지정했습니다.
text(-.25, 0, "This is a Circle")는 좌표 (-0.25, 0) 위치에 문자열을 배치합니다. 이 위치가 원의 중심 근처에 있기 때문에 텍스트가 원 안에 들어가 보이게 됩니다. 텍스트가 정확히 중앙에 오도록 하려면 ha='center', va='center' 옵션을 추가하고 좌표를 (0, 0)으로 설정하는 것이 좋습니다.
실행 결과
위 코드를 실행하면 노란색 원의 중앙 부근에 "This is a Circle"이라는 텍스트가 함께 표시된 그림이 출력됩니다.
마무리
이 방식은 다이어그램, 도식, 데이터 시각화에서 특정 영역을 강조하거나 레이블을 삽입할 때 유용하게 활용할 수 있습니다. 원의 크기와 텍스트 위치만 적절히 조절하면 다양한 시각화 요구에 맞춰 응용할 수 있습니다.