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

Matplotlib에서 Axes3D로 3D 그래프 확대/축소하는 방법

Matplotlib의 Axes3D를 사용하면 3차원 그래프를 손쉽게 시각화할 수 있습니다. 이 글에서는 Axes3D로 3D 산점도(Scatter Plot)를 그리고 확대/축소 기능을 활용하는 방법을 단계별로 살펴보겠습니다.

구현 단계

  • 그림 크기 설정: figure 크기를 지정하고 서브플롯 주변 및 사이의 여백(padding)을 조정합니다.
  • figure 생성: figure() 메서드를 사용해 새 figure를 만들거나 기존 figure를 활성화합니다.
  • 3D 축 객체 생성: Axes3D(fig) 메서드를 사용하여 3D 축 객체를 가져옵니다.
  • 데이터 시각화: scatter() 메서드를 사용하여 x, y, z 데이터 포인트를 플롯합니다.
  • 결과 출력: show() 메서드를 호출하여 figure를 화면에 표시합니다.

참고로, 생성된 3D 그래프에서는 마우스 왼쪽 버튼을 드래그하면 회전이 가능하고, 마우스 휠을 스크롤하면 확대/축소(zoom)가 자동으로 적용됩니다. 이는 Matplotlib의 3D 축에 기본으로 내장된 인터랙티브 기능입니다.

예제 코드

from mpl_toolkits.mplot3d import Axes3D
from matplotlib import pyplot as plt

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

fig = plt.figure()
ax = Axes3D(fig)
x = [2, 4, 6, 3, 1]
y = [1, 6, 8, 1, 3]
z = [3, 4, 10, 3, 1]

ax.scatter3D(x, y, z, c=z, alpha=1, marker='d', s=150)
plt.show()

실행 결과

위 코드를 실행하면 x, y, z 좌표에 해당하는 다이아몬드(diamond) 모양의 마커들이 z값에 따라 색상이 다르게 표현된 3D 산점도가 나타납니다. 마우스 휠을 스크롤하면 그래프를 자유롭게 확대하거나 축소할 수 있으며, 드래그를 통해 원하는 각도로 회전시켜 볼 수도 있습니다.

이처럼 Axes3D를 활용하면 별도의 추가 설정 없이도 직관적인 3차원 데이터 탐색 환경을 구축할 수 있습니다.