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차원 데이터 탐색 환경을 구축할 수 있습니다.