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

Python Matplotlib 3D 표면 플롯 색상 변경과 그리드 선 추가 방법

Python의 Matplotlib로 그린 3D 표면 플롯(surface plot)의 색상을 변경하고 그리드 선을 추가하는 방법을 단계별로 알아보겠습니다.

구현 절차

  • 그림(figure) 크기를 설정하고 서브플롯 주변과 사이의 여백(padding)을 조정합니다.
  • NumPy를 사용하여 x, y, h 데이터 포인트를 생성합니다.
  • 새로운 그림을 생성하거나 기존 그림을 활성화합니다.
  • 3단계에서 만든 figure 객체로부터 3D 축(axes) 객체를 가져옵니다.
  • plot_surface() 메서드를 사용하여 표면 플롯을 그리며, 이때 색상(color), 가장자리 색상(edgecolors), 선 두께(linewidth)를 지정합니다.

예제 코드

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

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

x = np.arange(-5, 5, 0.25)
y = np.arange(-5, 5, 0.25)

x, y = np.meshgrid(x, y)
h = np.sin(x)*np.cos(y)

fig = plt.figure()

ax = Axes3D(fig)
ax.plot_surface(x, y, h, rstride=10, cstride=10, color='orangered', edgecolors='yellow', lw=0.6)

plt.show()

코드 설명

위 코드에서 핵심 부분은 plot_surface() 호출입니다. 각 인자의 역할은 다음과 같습니다.

  • rstride=10, cstride=10: 행(row)과 열(column) 방향으로 몇 개의 격자마다 면을 그릴지 결정하여 메시 밀도를 조절합니다.
  • color='orangered': 표면의 채우기 색상을 오렌지레드로 지정합니다.
  • edgecolors='yellow': 각 면의 가장자리(테두리)를 노란색으로 표현해 그리드 선처럼 보이게 합니다.
  • lw=0.6: 가장자리 선의 두께를 설정합니다.

또한 ax.grid(True)를 추가하면 3D 축 자체에 배경 그리드 선을 표시할 수도 있습니다.

실행 결과

위 코드를 실행하면 노란색 그리드 선이 있는 오렌지레드 색상의 3D 표면 플롯이 출력됩니다. 사인(sine)과 코사인(cosine) 함수의 곱으로 생성된 파동 형태의 표면을 시각적으로 확인할 수 있습니다.