2011-01-27 10 views
1

x-y平面に投影されたいくつかのisoレベルカーブで関数f(x、y)=(x + 2)* y^2をプロットしようとしています。私は使用されるコードは、このです:Matplotlib v0.99輪郭のあるサーフェス:zdirが機能しない

from mpl_toolkits.mplot3d import Axes3D 
from matplotlib import cm 
from matplotlib.ticker import LinearLocator, FixedLocator, FormatStrFormatter 
import matplotlib.pyplot as plt 
import numpy as np 
from mpl_toolkits.mplot3d import axes3d, Axes3D 
import pylab as p 


fig = plt.figure() 
ax = Axes3D(fig) 
X = np.arange(0, 2.5, 0.1) 
Y = np.arange(0, 2.5, 0.1) 
X, Y = np.meshgrid(X, Y) 

Z = ((X+2))*(Y**2) 
surf = ax.plot_surface(X, Y, Z,rstride=1, cstride=1, alpha=0.3, cmap=cm.jet) 
cset=plt.contour(X,Y,Z,zdir='z',offset=0) 


ax.clabel(cset, fontsize=9, inline=1) 
ax.set_zlim3d(0, 30) 
ax.set_xlabel('X') 
ax.set_ylabel('Y') 
ax.set_zlabel('Z') 

fig.colorbar(surf, shrink=0.5, aspect=5) 
plt.show() 

私の問題は、その輪郭線が表面上になく、X-Y平面上にある、zdirが動作しないということです。

アイデア? ありがとうございます

+0

私はしません'zdir'はあなたが思っていることをすると思います。 'zdir = 'x''を試して、結果を見てください。 'offset'は、投影の平面の位置を定義します。 xy平面でない場合には、どの面を投影したいのですか? – Paul

答えて

3

私のコードはうまく動作します(matplotlib 1.0.1)。 enter image description here

Btw:thisの例がmatplotlib 1.0のギャラリーに追加されたようです。これは以前のバージョンの問題でしょうか?

+0

これは私がやりたいことです。私はバージョン1.0.1をインストールする必要があります – Stelios

2

zdirは、プロジェクトの方向を定義しています。 (x軸に沿ってzdir='x'プロジェクト)offsetは、私はあなたが欲しいものを推測するつもりです(zdirによって定義された軸に沿って)に投影されるように

Example

を平面の位置を定義するには、次のとおりです。

cset=plt.contour(X,Y,Z,zdir='z',offset=30) 
0

- > xsとys:x軸とy軸の座標です。 - > zs:これはz軸の値です。すべての点または各点に1つの数字を入力できます - > zdir:これはz軸の次元を選択します(通常はzsですが、 はxsまたはysです)