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() 메서드로 설정할 수 있습니다.