2017-03-16 15 views
0

Axes3Dモジュールのplot_wireframeを使用してワイヤフレームをプロットしようとしています。私のデータセット:3つの2D配列:2つはnp.arangeで作成し、次にnp.meshgridで作成しました。 3つ目は、関数 "f2"(f2 = f(x、y))の結果を含む配列です。私は3Dプロットを期待しましたが、結果は3D空間の2Dプロットです。今私はmplのドキュメントの一部のように見えるが、まだ動作しないいくつかのコードを作った。コード:matplotlib 1.5のWire_frameが正しくプロットされない

import matplotlib.pyplot as plt 
from mpl_toolkits.mplot3d import Axes3D 
import numpy as np 

def f2(x, y): 
    '''Return f(x, y) = exp(-(x * x + y * y)) * sin(-5. * (x * x + y * y))'''  
    return np.exp(-(x**2 + y**2)) * np.sin(-5.0 * (x**2 + y**2)) 


fig = plt.figure() 
ax = fig.add_subplot(111, projection='3d') 

x2 = np.arange(-1.5, 1.5, 0.02) 
y2 = np.arange(1.5, -1.5, -0.02) 

X, Y = np.meshgrid(x2, y2) 

z2 = f2(X, Y) 

ax.plot_wireframe(X, X, z2, rstride=10, cstride=10, linewidth=0.1, 
        label='$\exp(-(x^2 + y^2)){sin}(-5.0(x^2 + y^2)$') 

plt.show() 

私が欲しいものです: Beautiful 3D plot しかし、現実は残酷である: "A plot I've got"

私は私が間違ってやっている見当がつかない。ベクトルの値には問題がありますか?

答えて

0

変更

ax.plot_wireframe(X, X, z2, rstride=10, cstride=10, linewidth=0.1, 
       label='$\exp(-(x^2 + y^2)){sin}(-5.0(x^2 + y^2)$') 

ax.plot_wireframe(X, Y, z2, rstride=10, cstride=10, linewidth=0.1, 
       label='$\exp(-(x^2 + y^2)){sin}(-5.0(x^2 + y^2)$') 

にあなたはax.plot_wireframeに2番目の引数としてX代わりのYを使用しています。したがって、すべての点は対角の上に落ちるY=X

関連する問題