이 글에서는 Jupyter Notebook 환경에서 Python과 Matplotlib을 사용해 3D 플롯을 대화형(interactive)으로 만드는 방법을 예제 코드와 함께 살펴봅니다. 예제에서는 삼각함수를 이용해 구(sphere) 형태의 3D 와이어프레임을 그려보겠습니다.
구현 단계
새 figure를 생성하거나 기존 figure를 활성화합니다.
subplots 메서드를 사용해
fig와ax변수를 만듭니다. 기본값인 nrows=1, ncols=1을 유지하되,projection='3d'옵션을 지정해 3차원 축을 설정합니다.np.cos와np.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 플롯을 마우스로 자유롭게 회전하거나 확대·축소하려면 노트obook 셀 최상단에서 아래 매직 커맨드 중 하나를 먼저 실행해야 합니다.
%matplotlib notebook— 클래식 Jupyter Notebook에서 대화형 백엔드를 활성화합니다.%matplotlib widget— JupyterLab 또는 최신 Notebook 환경에서ipympl패키지(pip install ipympl)와 함께 사용하는 권장 방식입니다.
매직 커맨드를 실행한 뒤 코드를 다시 돌리면, 구 형태의 와이어프레임을 드래그하여 여러 각도에서 확인할 수 있는 대화형 3D 그래프가 완성됩니다.