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

matplotlib에서 pyplot.arrow 또는 patches.Arrow로 화살표 그리는 방법

matplotlib에서 화살표 그리기 개요

matplotlib에서 pyplot.arrow 또는 patches.FancyArrowPatch()를 사용하면 그래프 위에 원하는 위치와 방향의 화살표를 손쉽게 그릴 수 있습니다. 아래 단계를 따라 직접 구현해 보세요.

  • 그림(figure) 크기를 설정하고 서브플롯 사이 및 주변의 여백(padding)을 조정합니다.
  • 화살표의 시작점과 끝점 좌표인 x_tail, y_tail, x_head, y_head 네 개의 변수를 초기화합니다.
  • plt.subplots()로 그림과 서브플롯(축)을 생성합니다.
  • FancyArrowPatch 인스턴스를 만들어 화살표 모양을 정의합니다.
  • add_patch() 메서드를 사용해 생성한 화살표 아티스트를 축에 추가합니다.
  • show() 메서드를 호출하여 최종 그림을 화면에 표시합니다.

예제 코드

from matplotlib import pyplot as plt, patches as mpatches

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

x_tail = 0.1
y_tail = 0.1
x_head = 0.9
y_head = 0.9

fig, ax = plt.subplots()

arrow = mpatches.FancyArrowPatch((x_tail, y_tail), (x_head, y_head), mutation_scale=100, color='green')
ax.add_patch(arrow)

plt.show()

코드 설명

위 예제에서 핵심은 FancyArrowPatch 클래스입니다. 첫 번째 인자로 화살표 꼬리(tail) 좌표를, 두 번째 인자로 머리(head) 좌표를 전달하여 화살표의 시작점과 끝점을 지정합니다. mutation_scale 파라미터는 화살표 머리의 크기를 조절하며, 값이 클수록 화살표가 커집니다. color 파라미터로 화살표 색상을 지정할 수 있으며, 이 예제에서는 초록색('green')으로 설정했습니다.

또한 plt.rcParams 설정을 통해 그림 크기를 7.50×3.50 인치로 지정하고, autolayout 옵션을 활성화해 레이블이 잘리지 않도록 자동으로 여백을 조정합니다.

실행 결과

코드를 실행하면 왼쪽 아래(0.1, 0.1)에서 오른쪽 위(0.9, 0.9)로 향하는 초록색 화살표가 그려진 그래프가 출력됩니다.