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

Matplotlib로 3D 연속선 그리기: 단계별 가이드

Matplotlib에서 3D 연속선을 그리려면 다음 단계를 따르면 됩니다.

3D 연속선 플롯의 기본 단계

  • 그림 크기를 설정하고 서브플롯 주변과 사이의 여백(padding)을 조정합니다.

  • NumPy를 사용하여 x, y 데이터 포인트를 생성합니다.

  • x와 y 데이터를 활용해 z 데이터 포인트를 계산합니다.

  • figure() 메서드로 새 figure를 생성하거나 기존 figure를 활성화합니다.

  • 3D 투영(projection)이 적용된 축(axes)을 서브플롯으로 추가합니다.

  • plot() 메서드를 사용해 x, y, z 데이터를 플롯합니다.

  • show() 메서드로 결과 그림을 화면에 표시합니다.

예제 코드

import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
x = np.linspace(-4 * np.pi, 4 * np.pi, 50)
y = np.linspace(-4 * np.pi, 4 * np.pi, 50)
z = x ** 2 + y ** 2
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot(x, y, z)
plt.show()

코드 설명

위 예제에서는 np.linspace()를 사용하여 -4π부터 4π까지 범위에서 균일하게 분포된 50개의 x, y 좌표를 생성합니다. 이후 z = x² + y² 공식으로 각 점의 높이 값을 계산합니다.

핵심은 fig.add_subplot(111, projection='3d') 부분입니다. projection='3d' 옵션을 지정하면 일반적인 2D 축 대신 3D 축이 생성되며, 이를 통해 ax.plot(x, y, z)처럼 세 개의 좌표를 전달하여 3차원 공간에 연속선을 그릴 수 있습니다.

실행 결과

코드를 실행하면 나선형으로 감기듯 상승하는 3D 곡선이 출력됩니다. 마우스 드래그로 시점을 회전하거나 확대·축소할 수 있어 데이터를 입체적으로 관찰할 수 있습니다.

추가 팁

  • 선의 색상과 두께를 변경하려면 ax.plot(x, y, z, color='red', linewidth=2)처럼 옵션을 추가하세요.

  • 그리드를 표시하려면 ax.grid(True)를 사용하면 입체감이 더 잘 살아납니다.

  • 축 레이블은 ax.set_xlabel(), ax.set_ylabel(), ax.set_zlabel() 메서드로 설정할 수 있습니다.