Matplotlib에서 표면 플롯을 만드는 방법

Matplotlib에서는 3D 분석 및 시각화를 위해 mplot3d툴킷을 사용합니다. 여기에는 Matplotlib의 2 차원 함수 위에 구축 된 3 차원 플로팅 방법이 포함되어 있습니다. Matplotlib의 축 생성 함수 중 하나에projection = '3d' 인수를 전달하여 3 차원 축을 만들 수 있습니다. 3 차원 축이 초기화되면plot_surface()메소드를 사용하여 표면 플롯을 생성 할 수 있습니다.

Axes3D.plot_surface()메소드

Axes3D.plot_surface(X, Y, Z, *args, **kwargs) 방법을 사용하여 표면 플롯을 만들 수 있습니다 여기서 X, Y 및 Z는 모두 2 차원 배열입니다.

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

fig = plt.figure(figsize=(8,6))
ax3d = plt.axes(projection="3d")

xdata = np.linspace(-3,3,100)
ydata = np.linspace(-3,3,100)
X,Y = np.meshgrid(xdata,ydata)
Z = 1/(1+np.exp(-X-Y))

ax3d = plt.axes(projection='3d')
ax3d.plot_surface(X, Y, Z,cmap='plasma')
ax3d.set_title('Surface Plot in Matplotlib')
ax3d.set_xlabel('X')
ax3d.set_ylabel('Y')
ax3d.set_zlabel('Z')

plt.show()

plot_surface를 사용하여 matplotlib의 표면 플롯

Matplotlib을 사용하여 3D 공간에서 표면 플롯을 생성합니다. 여기서 cmap매개 변수는 3D 색상 공간에서 데이터를 잘 표현하는 데 사용됩니다. 플롯의 색상은 종속 변수 값의 변화에 따라 달라집니다.

다음과 같은 매개 변수를 변경하는 플롯을 사용자 정의 할 수 있습니다.

  • rstride : 기본값이 10 인 행 단계 크기
  • cstride : 기본값이 10 인 열 단계 크기
  • color : 표면의 색상
  • cmap : 표면의 컬러 맵
  • facecolors : 표면의 각 패치에 대한 페이스 컬러
  • norm : 값을 색상에 매핑하는 Normalize 인스턴스
  • vmin : 매핑 할 최소값
  • vmax : 매핑 할 최대 값
  • shade : 얼굴 색상을 음영할지 여부
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits import mplot3d

fig = plt.figure(figsize=(8,6))
ax3d = plt.axes(projection="3d")

xdata = np.linspace(-3,3,100)
ydata = np.linspace(-3,3,100)
X,Y = np.meshgrid(xdata,ydata)
Z = 1/(1+np.exp(-X-Y))

ax3d = plt.axes(projection='3d')
surf=ax3d.plot_surface(X, Y, Z, rstride=7, cstride=7, cmap="viridis")
fig.colorbar(surf, ax=ax3d)
ax3d.set_title('Surface Plot in Matplotlib')
ax3d.set_xlabel('X')
ax3d.set_ylabel('Y')
ax3d.set_zlabel('Z')

plt.savefig("Customized Surface Plot.png")

plt.show()

맞춤형 표면 플롯

이 예제에서는colorbar()메서드를 사용하고 표면 플롯 객체를 메서드에 전달하여 그림을보다 유익하게 만들어 그림에 컬러 막대를 추가합니다.