2017-10-04 20 views
1

私はMatplotlibを初めて使い、3Dグラフでプレーンをプロットする必要があります。私は式の中にa、b、cの値を持っています。これは1y + 2x + 3のようなものです。Matplotlibで3Dサーフェスをプロットするa * y + b * x + c

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

関連する問題