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

Python으로 3D 컬러 표면(Surface) 그래프 그리는 방법

Python의 matplotlib 라이브러리를 활용하면 색상이 입혀진 3D 표면 플롯을 손쉽게 만들 수 있습니다. 아래 단계를 따라 진행해 보세요.

구현 단계

  • 그림(figure) 크기를 설정하고, 서브플롯 사이와 주변의 여백(padding)을 자동으로 조정합니다.

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

  • 3D로 표현할 데이터, 즉 z값을 계산합니다.

  • 새 그림을 생성하거나 기존 그림을 활성화합니다.

  • projection='3d' 옵션을 지정해 3D 축(ax)을 가져옵니다.

  • plot_surface() 메서드로 표면 플롯을 생성하며, cmap 인자에 원하는 컬러맵을 지정합니다.

  • show() 메서드를 호출하여 최종 그림을 화면에 표시합니다.

예제 코드

import numpy as np
import matplotlib.pyplot as plt

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

x = np.linspace(-3, 3, 100)
y = np.cos(x)

x, y = np.meshgrid(x, y)

z = x ** 2 + y ** 2 - 2

fig = plt.figure()

ax = plt.axes(projection='3d')

surf = ax.plot_surface(x, y, z,
cmap=plt.get_cmap('hot'),
edgecolor='none')

plt.show()

실행 결과

위 코드를 실행하면 'hot' 컬러맵이 적용된 부드러운 3D 표면 그래프가 출력됩니다. edgecolor='none' 옵션 덕분에 격자 선 없이 깔끔한 표면이 완성됩니다.

Python으로 3D 컬러 표면(Surface) 그래프 그리는 방법

핵심 포인트 정리

  • np.meshgrid()는 1차원 배열을 2차원 좌표 그리드로 변환해 주어 표면 플롯에 필수적입니다.

  • cmap 옵션에는 'hot', 'viridis', 'coolwarm' 등 다양한 내장 컬러맵을 사용할 수 있으며, 값의 크기에 따라 색상이 직관적으로 표현됩니다.

  • plt.rcParams 설정을 통해 그림 크기와 여백을 미리 조정하면 반복 작업 시 코드가 더 간결해집니다.