소개
이 랩에서는 Matplotlib 을 사용하여 세 축 모두를 중심으로 회전하는 3D 플롯의 간단한 애니메이션을 만드는 방법을 안내합니다. 샘플 데이터 세트를 사용하여 기본 와이어프레임을 생성하고, 축 레이블을 설정하고, 축을 회전시킵니다.
VM 팁
VM 시작이 완료되면, 왼쪽 상단 모서리를 클릭하여 Notebook 탭으로 전환하여 실습을 위해 Jupyter Notebook에 접근하십시오.
때로는 Jupyter Notebook 이 로딩을 완료하는 데 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한으로 인해 작업의 유효성 검사는 자동화될 수 없습니다.
학습 중에 문제가 발생하면 언제든지 Labby 에게 문의하십시오. 세션 후 피드백을 제공해주시면 문제를 신속하게 해결해 드리겠습니다.
라이브러리 및 데이터 세트 가져오기
먼저, 필요한 라이브러리와 데이터 세트를 가져와야 합니다. 이 예제에서는 3D 플롯을 생성하기 위해 matplotlib 및 mpl_toolkits.mplot3d 라이브러리를 사용하고, 샘플 데이터 세트를 생성하기 위해 axes3d.get_test_data() 함수를 사용합니다.
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d
## Generate sample dataset
X, Y, Z = axes3d.get_test_data(0.05)
3D 플롯 생성
다음으로, plt.figure() 및 fig.add_subplot() 함수를 사용하여 3D 플롯을 생성합니다. 또한 ax.plot_wireframe() 함수를 사용하여 데이터 세트를 와이어프레임으로 플롯합니다.
## Create 3D plot
fig = plt.figure()
ax = fig.add_subplot(projection='3d')
## Plot wireframe
ax.plot_wireframe(X, Y, Z, rstride=10, cstride=10)
축 레이블 설정
이제 ax.set_xlabel(), ax.set_ylabel(), 및 ax.set_zlabel() 함수를 사용하여 3D 플롯의 축 레이블을 설정합니다.
## Set axis labels
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
축 회전 및 플롯 업데이트
마지막으로, 완전한 고도, 방위각, 롤 및 모든 회전을 순환하는 for 루프를 사용하여 축을 회전하고 플롯을 업데이트합니다. ax.view_init() 함수를 사용하여 축 뷰와 제목을 업데이트하고, plt.title(), plt.draw(), 및 plt.pause() 함수를 사용하여 애니메이션을 표시합니다.
## Rotate the axes and update the plot
for angle in range(0, 360*4 + 1):
## Normalize the angle to the range [-180, 180] for display
angle_norm = (angle + 180) % 360 - 180
## Cycle through a full rotation of elevation, then azimuth, roll, and all
elev = azim = roll = 0
if angle <= 360:
elev = angle_norm
elif angle <= 360*2:
azim = angle_norm
elif angle <= 360*3:
roll = angle_norm
else:
elev = azim = roll = angle_norm
## Update the axis view and title
ax.view_init(elev, azim, roll)
plt.title('Elevation: %d°, Azimuth: %d°, Roll: %d°' % (elev, azim, roll))
## Display animation
plt.draw()
plt.pause(.001)
요약
이 랩에서는 Matplotlib 을 사용하여 세 축 모두를 중심으로 회전하는 3D 플롯의 간단한 애니메이션을 만드는 방법을 배웠습니다. 샘플 데이터 세트를 사용하여 기본 와이어프레임을 만들고, 축 레이블을 설정하고, 축을 회전시켰습니다. 또한 ax.view_init(), plt.title(), plt.draw(), 및 plt.pause() 함수를 사용하여 플롯을 업데이트하고 애니메이션을 표시하는 방법을 배웠습니다.