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

주피터 노트북에서 3D 플롯을 대화형으로 만들기 – Python과 Matplotlib 활용법

이 글에서는 Jupyter Notebook 환경에서 Python과 Matplotlib을 사용해 3D 플롯을 대화형(interactive)으로 만드는 방법을 예제 코드와 함께 살펴봅니다. 예제에서는 삼각함수를 이용해 구(sphere) 형태의 3D 와이어프레임을 그려보겠습니다.

구현 단계

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

  • subplots 메서드를 사용해 figax 변수를 만듭니다. 기본값인 nrows=1, ncols=1을 유지하되, projection='3d' 옵션을 지정해 3차원 축을 설정합니다.

  • np.cosnp.sin 함수를 이용해 x, y, z 좌표값을 계산합니다.

  • x, y, z 데이터를 바탕으로 color="red" 옵션을 적용한 3D 와이어프레임을 플롯합니다.

  • 현재 축(ax)에 제목을 설정합니다.

  • plt.show() 메서드를 호출해 그림을 화면에 표시합니다.

예제 코드

import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
u, v = np.mgrid[0:2 * np.pi:30j, 0:np.pi:20j]
x = np.cos(u) * np.sin(v)
y = np.sin(u) * np.sin(v)
z = np.cos(v)
ax.plot_wireframe(x, y, z, color="red")
ax.set_title("Sphere")
plt.show()

출력 결과

주피터 노트북에서 3D 플롯을 대화형으로 만들기 – Python과 Matplotlib 활용법

대화형 모드 활성화하기

위 코드만 실행하면 정적인 이미지가 출력됩니다. 3D 플롯을 마우스로 자유롭게 회전하거나 확대·축소하려면 노트obook 셀 최상단에서 아래 매직 커맨드 중 하나를 먼저 실행해야 합니다.

  • %matplotlib notebook — 클래식 Jupyter Notebook에서 대화형 백엔드를 활성화합니다.

  • %matplotlib widget — JupyterLab 또는 최신 Notebook 환경에서 ipympl 패키지(pip install ipympl)와 함께 사용하는 권장 방식입니다.

매직 커맨드를 실행한 뒤 코드를 다시 돌리면, 구 형태의 와이어프레임을 드래그하여 여러 각도에서 확인할 수 있는 대화형 3D 그래프가 완성됩니다.