Python matplotlib 1.5中的Wire#u框架不';不能正确绘制

Python matplotlib 1.5中的Wire#u框架不';不能正确绘制,python,matplotlib,plot,scipy,Python,Matplotlib,Plot,Scipy,我正在尝试使用Axes3D模块中的plot\u wireframe绘制线框。我的数据集:三个2D数组:两个是用np.arange创建的,然后是np.meshgrid。第三个是包含函数“f2”(f2=f(x,y))结果的数组。我期望3D绘图,但结果是3D空间中的2D绘图。现在我制作了一些代码,看起来像是mpl文档化的一部分,但仍然不起作用。代码: import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D impo

我正在尝试使用
Axes3D
模块中的
plot\u wireframe
绘制线框。我的数据集:三个2D数组:两个是用
np.arange
创建的,然后是
np.meshgrid
。第三个是包含函数“f2”(f2=f(x,y))结果的数组。我期望3D绘图,但结果是3D空间中的2D绘图。现在我制作了一些代码,看起来像是mpl文档化的一部分,但仍然不起作用。代码:

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()
这就是我想要的: 但现实是残酷的:

我不知道我做错了什么。这是向量值的问题吗

变化

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)$')

您正在使用
X
而不是
Y
作为
ax.plot\u线框的第二个参数。因此,所有点都落在对角线的顶部
Y=X

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)$')