Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Matplotlib로 원 안에 사각형 그리기: 단계별 완벽 가이드

Matplotlib에서 원 안에 사각형 그리는 방법

파이썬 대표 데이터 시각화 라이브러리인 Matplotlib에서는 patches 모듈을 활용하면 원 안에 사각형을 손쉽게 그릴 수 있습니다. 이 글에서는 Rectangle()Circle() 클래스를 사용해 두 도형을 하나의 그림 위에 겹쳐 그리는 방법을 단계별로 살펴보겠습니다.

구현 단계

  1. figure() 메서드를 사용해 새 그림(figure)을 생성하거나 기존 그림을 활성화합니다.

  2. add_subplot()으로 현재 축(axis)에 서브플롯을 추가합니다.

  3. Rectangle() 클래스와 Circle() 클래스의 인스턴스를 각각 생성합니다.

  4. add_patch() 메서드로 만든 도형(패치)을 축에 추가합니다.

  5. xlim()ylim() 메서드로 x축과 y축의 표시 범위를 조정합니다.

  6. 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)

# 사각형과 원 인스턴스 생성
rect1 = patches.Rectangle((-2, -2), 4, 2, color='yellow')
circle1 = matplotlib.patches.Circle((0, 0), radius=3, color='red')

# 패치를 축에 추가
ax.add_patch(circle1)
ax.add_patch(rect1)

# 축 범위 설정 및 비율 유지
plt.xlim([-5, 5])
plt.ylim([-5, 5])
plt.axis('equal')

plt.show()

코드 설명

  • patches.Rectangle((-2, -2), 4, 2): 좌표 (-2, -2)를 시작점으로 하여 너비 4, 높이 2인 노란색 사각형을 만듭니다.

  • matplotlib.patches.Circle((0, 0), radius=3): 중심이 (0, 0)이고 반지름이 3인 빨간색 원을 만듭니다.

  • plt.axis('equal'): x축과 y축의 눈금 간격을 동일하게 맞춰 원이 찌그러지지 않고 정원 형태로 표시되도록 합니다.

실행 결과

코드를 실행하면 좌표 평면 위에 반지름 3의 빨간색 원이 먼저 그려지고, 그 위에 노란색 사각형이 겹쳐서 표시됩니다. 패치가 추가된 순서대로 위에 덮여 그려지므로, 사각형이 나중에 추가되어 원의 일부를 가리게 됩니다. 그리기 순서를 바꾸면 도형이 겹치는 모양도 자유롭게 조절할 수 있습니다.