Matplotlib 의 고급 Quiver 및 Quiverkey 함수

Beginner

This tutorial is from open-source community. Access the source code

소개

Matplotlib 는 Python 에서 데이터를 시각화하는 라이브러리로, 사용자가 다양한 2D 및 3D 플롯을 생성할 수 있도록 합니다. Matplotlib 의 많은 유용한 기능 중 하나는 벡터 필드를 표시하는 quiver plot 을 생성하는 기능입니다.

이 랩에서는 Matplotlib 의 quiver()quiverkey() 함수에 대한 몇 가지 고급 옵션을 살펴봅니다. 이 함수들을 사용하면 화살표 크기, 피벗 포인트 (pivot point), 화살표 빈도 등 quiver plot 의 화살표를 사용자 정의할 수 있습니다.

VM 팁

VM 시작이 완료되면 왼쪽 상단을 클릭하여 Notebook 탭으로 전환하여 실습을 위해 Jupyter Notebook에 액세스하십시오.

때로는 Jupyter Notebook 이 로딩을 완료하는 데 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한으로 인해 작업의 유효성 검사는 자동화할 수 없습니다.

학습 중 문제가 발생하면 언제든지 Labby 에게 문의하십시오. 세션 후 피드백을 제공해주시면 문제를 신속하게 해결해 드리겠습니다.

뷰가 아닌 플롯 너비에 따른 화살표 크기 조정

quiver() 함수는 quiver plot 을 생성하는 데 사용될 수 있습니다. 기본적으로 플롯의 화살표는 플롯 자체가 아닌 데이터에 따라 크기가 조정됩니다. 이로 인해 플롯 가장자리에 가까운 화살표를 보기 어려울 수 있습니다.

import matplotlib.pyplot as plt
import numpy as np

X, Y = np.meshgrid(np.arange(0, 2 * np.pi, .2), np.arange(0, 2 * np.pi, .2))
U = np.cos(X)
V = np.sin(Y)

fig1, ax1 = plt.subplots()
ax1.set_title('Arrows scale with plot width, not view')
Q = ax1.quiver(X, Y, U, V, units='width')
qk = ax1.quiverkey(Q, 0.9, 0.9, 2, r'$2 \frac{m}{s}$', labelpos='E',
                   coordinates='figure')
plt.show()

피벗 포인트 (Pivot Point) 및 화살표 빈도

quiver() 함수는 화살표의 피벗 포인트와 화살표가 표시되는 빈도를 사용자 정의하는 데에도 사용할 수 있습니다. pivot 매개변수는 'mid' 또는 'tip'으로 설정할 수 있으며, quiver()에 전달된 배열을 슬라이싱하여 n 번째 화살표만 표시할 수 있습니다.

fig2, ax2 = plt.subplots()
ax2.set_title("pivot='mid'; every third arrow; units='inches'")
Q = ax2.quiver(X[::3, ::3], Y[::3, ::3], U[::3, ::3], V[::3, ::3],
               pivot='mid', units='inches')
qk = ax2.quiverkey(Q, 0.9, 0.9, 1, r'$1 \frac{m}{s}$', labelpos='E',
                   coordinates='figure')
ax2.scatter(X[::3, ::3], Y[::3, ::3], color='r', s=5)
plt.show()

X 뷰 (View) 에 따른 화살표 크기 조정

quiver() 함수는 또한 x 뷰에 따라 화살표 크기를 조정할 수 있도록 합니다. 이는 데이터에 따라 다른 크기로 화살표를 표시하는 데 유용할 수 있습니다.

fig3, ax3 = plt.subplots()
ax3.set_title("pivot='tip'; scales with x view")
M = np.hypot(U, V)
Q = ax3.quiver(X, Y, U, V, M, units='x', pivot='tip', width=0.022,
               scale=1 / 0.15)
qk = ax3.quiverkey(Q, 0.9, 0.9, 1, r'$1 \frac{m}{s}$', labelpos='E',
                   coordinates='figure')
ax3.scatter(X, Y, color='0.5', s=1)
plt.show()

요약

이 랩에서는 Matplotlib 의 quiver()quiverkey() 함수에 대한 몇 가지 고급 옵션을 다루었습니다. 이러한 옵션을 통해 화살표 크기, 피벗 포인트 (pivot point), 화살표 빈도를 포함하여 quiver plot 의 화살표를 사용자 정의할 수 있습니다. 이러한 옵션을 사용함으로써 사용자는 더 유익하고 시각적으로 매력적인 quiver plot 을 만들 수 있습니다.