Matplotlib 3D Quiver 플롯

Beginner

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

소개

이 랩에서는 Python Matplotlib 을 사용하여 3D 쿼버 플롯 (quiver plot) 을 만드는 방법을 배우게 됩니다. 쿼버 플롯은 벡터 필드를 화살표로 표시합니다. 화살표는 벡터의 방향을 가리키며, 화살표의 길이는 벡터의 크기를 나타냅니다.

VM 팁

VM 시작이 완료되면, 왼쪽 상단 모서리를 클릭하여 Notebook 탭으로 전환하여 실습을 위해 Jupyter Notebook에 접근하십시오.

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

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

라이브러리 임포트 및 플롯 설정

첫 번째 단계는 필요한 라이브러리를 임포트하고 플롯을 설정하는 것입니다. 이 예제에서는 3D 플롯을 생성하기 위해 Matplotlib 의 pyplot 모듈과 3d 툴킷을 사용합니다.

import matplotlib.pyplot as plt
import numpy as np

ax = plt.figure().add_subplot(projection='3d')

그리드 생성

다음으로, 벡터 필드를 표시할 점들의 그리드를 생성합니다. 이 예제에서는 NumPy 의 meshgrid 함수를 사용하여 점들의 메쉬 그리드를 생성합니다. arange 함수는 지정된 간격 내에서 균등하게 간격을 둔 점들의 배열을 생성하는 데 사용됩니다.

x, y, z = np.meshgrid(np.arange(-0.8, 1, 0.2),
                      np.arange(-0.8, 1, 0.2),
                      np.arange(-0.8, 1, 0.8))

화살표 방향 정의

이제 화살표의 방향을 정의합니다. 이 예제에서는 NumPy 의 삼각 함수를 사용하여 화살표의 방향을 정의합니다. sincos 함수는 x, y, 및 z 방향의 화살표 방향을 나타내는 u, v, 및 w 배열을 생성하는 데 사용됩니다.

u = np.sin(np.pi * x) * np.cos(np.pi * y) * np.cos(np.pi * z)
v = -np.cos(np.pi * x) * np.sin(np.pi * y) * np.cos(np.pi * z)
w = (np.sqrt(2.0 / 3.0) * np.cos(np.pi * x) * np.cos(np.pi * y) *
     np.sin(np.pi * z))

Quiver 플롯 생성

그리드와 화살표의 방향이 정의되었으므로, quiver 플롯을 생성할 수 있습니다. 이 예제에서는 Matplotlib 의 quiver 함수를 사용하여 플롯을 생성합니다. length 매개변수는 화살표의 길이를 설정하고, normalize 매개변수는 화살표를 길이 1 로 정규화합니다.

ax.quiver(x, y, z, u, v, w, length=0.1, normalize=True)

플롯 표시

마지막으로, Matplotlib 의 show 함수를 사용하여 플롯을 표시합니다.

plt.show()

요약

이 랩에서는 Python Matplotlib 을 사용하여 3D quiver 플롯을 생성하는 방법을 배웠습니다. meshgrid 함수는 점의 그리드를 생성하는 데 사용되었고, NumPy 의 삼각 함수는 화살표의 방향을 정의하는 데 사용되었습니다. 그런 다음 quiver 함수를 사용하여 플롯을 생성하고, show 함수를 사용하여 이를 표시했습니다.