Matplotlib에서 3D 서브플롯 추가하기
Python의 시각화 라이브러리인 Matplotlib를 사용하면 간단한 설정만으로 그림(Figure) 안에 3차원 서브플롯을 쉽게 추가할 수 있습니다. 핵심은 add_subplot() 메서드에 projection='3d' 옵션을 지정하는 것입니다.
3D 서브플롯 추가 단계
- 그림 크기를 설정하고 서브플롯 사이 및 주변의 여백(padding)을 조정합니다.
- NumPy를 사용하여 x, y, z 데이터 포인트를 생성합니다.
- 새로운 그림을 생성하거나 기존 그림을 활성화합니다.
- projection='3d' 옵션과 함께
add_subplot()을 호출하여 그림에 축(ax)을 서브플롯 형태로 추가합니다. - plot() 메서드를 사용하여 x, y, z 데이터 포인트를 그립니다.
- 그림을 화면에 표시하려면 .show() 메서드를 사용합니다.
예제 코드
from matplotlib import pyplot as plt import numpy as np # 그림 크기 설정 plt.rcParams["figure.figsize"] = [7.00, 3.50] plt.rcParams["figure.autolayout"] = True # NumPy를 사용하여 x, y, z 데이터 포인트 생성 x = np.linspace(-5, 5, 100) y = np.linspace(-5, 5, 100) z = x ** 2 + y ** 2 fig = plt.figure() # projection='3d' 옵션으로 3D 서브플롯 추가 ax = fig.add_subplot(111, projection='3d') # x, y, z 데이터 포인트 플롯 ax.plot(x, y, z, color='red', lw=7) plt.show()
실행 결과
위 코드를 실행하면 아래와 같이 빨간색 곡선으로 표현된 3차원 그래프가 출력됩니다.

추가 설명
add_subplot(111)에서 인자 111은 그림을 1행 1열로 나누고 첫 번째 위치에 서브플롯을 배치한다는 의미입니다. 만약 여러 개의 서브플롯과 함께 3D 그래프를 배치하고 싶다면, 예를 들어 add_subplot(121, projection='3d')처럼 값을 조정하면 됩니다. 또한 최신 버전의 Matplotlib에서는 행·열 정보를 생략하고 fig.add_subplot(projection='3d')와 같이 간결하게 작성할 수도 있습니다.