Matplotlib에서 표면 플롯을 만드는 방법
Suraj Joshi
2020년6월25일
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()
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()
메서드를 사용하고 표면 플롯 객체를 메서드에 전달하여 그림을보다 유익하게 만들어 그림에 컬러 막대를 추가합니다.
작가: Suraj Joshi
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn