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

Matplotlib 그림에 3D 서브플롯을 추가하는 방법

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차원 그래프가 출력됩니다.

Matplotlib 그림에 3D 서브플롯을 추가하는 방법

추가 설명

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