2017-05-12 13 views
0

私はここでかなり具体的な作業をしています。私は5つの変数の機能を持っていると言うことができます。私は3つのプロットを作りたいと思います。ここでIllは2変数を変数、3変数は固定パラメータとします。次に例を示します。Pythonで複数のパラメータを使ってf(X、Y)をプロットする

import matplotlib.pyplot as plt 
import matplotlib 
from mpl_toolkits.mplot3d import axes3d 

import numpy 

#desired function is for example f(x, y, {a,b,c}) = x*a/((y+b)*(y+c)) 
a = 3 
b = 8.5 
c = 3.1 
x = [i for i in range(-10,10,1)] 
y = x 

X, Y = numpy.meshgrid(x, y) 

#this part of code is wrong 
Z = X*a/((Y+b)*(Y+c)) 

hereのようにそれをプロットします。

fig = plt.figure() 
ax = fig.add_subplot(111, projection = '3d') 
surf = ax1.plot_surface(X, Y, Z, rstride = 5, cstride = 5, 
     cmap = matplotlib.cm.jet) 
fig.colorbar(surf) 
plt.show() 

ありがとうございました!

+4

ここに疑問の余地はありません。 –

+0

ああ、申し訳ありませんが私のコードは私のためには機能しませんでしたが、別のPythonディストリビューションで動作します。 – Bobesh

+0

どうしてうまくいかなかったのですか?これらすべての情報を質問自体に追加し、コメントに投稿しないでください。 #1)私たちはここに読者を気にしません。 #2)あなたの質問は、コメントなしでそれ自身で有効でなければなりません。 –

答えて

0

ax1のエラーは未定義です。 この編集されたコードは動作するはずです:

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

#desired function is for example f(x, y, {a,b,c}) = x*a/((y+b)*(y+c)) 
a = 3 
b = 8.5 
c = 3.1 
x = [i for i in range(-10,10,1)] 
y = x 

X, Y = numpy.meshgrid(x, y) 
Z = X*a/((Y+b)*(Y+c)) 

fig = plt.figure() 
ax = fig.add_subplot(111, projection = '3d') 
surf = ax.plot_surface(X, Y, Z, rstride = 5, cstride = 5, \ 
     cmap = matplotlib.cm.jet) 

fig.colorbar(surf) 
plt.show() 

enter image description here

+0

私はそれを完全に逃した。ありがとう! – Bobesh

関連する問題