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

Matplotlib로 극좌표에서 퀴버(Quiver) 플롯 만드는 방법

Matplotlib를 사용하면 극좌표(polar coordinates)에서도 벡터장을 시각화하는 퀴버 플롯(quiver plot)을 손쉽게 그릴 수 있습니다. 이 글에서는 단계별 예제 코드와 함께 구현 방법을 소개합니다.

구현 절차

  • 그림(figure) 크기를 설정하고, 서브플롯 사이와 주변의 여백(padding)을 조정합니다.

  • NumPy를 사용하여 반지름(radii), 각도(thetas) 데이터를 생성한 뒤, meshgridthetar 좌표 배열을 만듭니다.

  • 새로운 figure를 생성하거나 기존 figure를 활성화합니다.

  • 서브플롯 배치의 일부로 극좌표 축(polar=True)인 ax를 figure에 추가합니다.

  • quiver() 메서드를 호출하여 화살표(벡터) 컬렉션을 그립니다.

  • show() 메서드를 사용해 최종 그림을 화면에 표시합니다.

예제 코드

import numpy as np
from matplotlib import pyplot as plt

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

radii = np.linspace(0, 1, 5)
thetas = np.linspace(0, 2 * np.pi, 20)
theta, r = np.meshgrid(thetas, radii)

f = plt.figure()

ax = f.add_subplot(polar=True)
ax.quiver(theta, r, np.cos(theta) - np.sin(theta), np.sin(theta) + np.cos(theta))

plt.show()

실행 결과

위 코드를 실행하면 원형 격자 위에 각 지점의 벡터 방향과 크기를 나타내는 화살표들이 그려진 극좌표 퀴버 플롯이 출력됩니다. 각도 성분으로는 cos(θ) − sin(θ), 반지름 성분으로는 sin(θ) + cos(θ)이 사용되어, 위치에 따라 회전하는 벡터장 패턴을 확인할 수 있습니다.

Matplotlib로 극좌표에서 퀴버(Quiver) 플롯 만드는 방법

핵심 포인트 정리

  • f.add_subplot(polar=True): 일반 직교 좌표 대신 극좌표 축을 생성하는 핵심 옵션입니다.

  • np.meshgrid(thetas, radii): 각도와 반지름 조합을 2D 격자로 변환하여 모든 격자점에 벡터를 배치할 수 있게 해줍니다.

  • quiver(x, y, u, v): x, y는 벡터의 시작 위치, u, v는 각각 벡터의 성분을 의미합니다.