2017-10-04 3 views
1

저는 Matplotlib을 처음 사용 했으므로 평면 그래프를 3D 그래프로 플롯해야합니다. 방정식에 a, b, c 값을 가지고 있는데, 1y + 2x + 3과 같습니다.Matplotlib로 3D 표면 플롯

theta = np.array([1,2,3]) 
fig = plt.figure() 
ax = fig.add_subplot(111, projection='3d') 
ax.plot_surface(theta[0],theta[1],theta[2]) 
plt.show() 

나는 그것이 plot_surface() 기능을 사용하는 올바른 방법이 아니다 알고 있지만 방법을 알아낼 수 없습니다. 1

업데이트 나는 와이어를 사용하여 뭔가를 알아 냈어.

# Plot the plane 
X = np.linspace(0,100, 500) 
Y = np.linspace(0,100, 500) 
Z = np.dot(theta[0],X) + np.dot(theta[1],Y) + theta[2] 
fig = plt.figure() 
ax = fig.add_subplot(111, projection='3d') 
ax.plot_wireframe(X,Y,Z) 
plt.show() 

하지만 줄을 보여줍니다.

enter image description here

+1

당신의 기능은 당신이 그에서 3 차원 그래프를 그릴 수있는 방법, 하나 개의 변수를 가지고? –

+0

실수를했습니다. y + 2x + 3이 될 것입니다. – Servietsky

답변

1

이 시도 :

fig = plt.figure() 
ax = fig.add_subplot(111, projection='3d') 
X = np.arange(-5, 5, 0.25) 
Y = np.arange(-5, 5, 0.25) 
X, Y = np.meshgrid(X, Y) 
Z = X + Y * 2 + 3 
# Plot the surface. 
ax.plot_surface(X, Y, Z, linewidth=0) 
plt.show() 

당신은 먼저 당신의 변수 meshgrid를 만들 meshgrid에 함수 값을 계산해야합니다.

enter image description here