Mayavi网格 - numpy meshgrid无显示

时间:2012-08-06 19:39:42

标签: python 3d numpy mesh mayavi

玩MayaVi,我无法使用以下代码显示网格物体。可能有什么不对?

def visualize_surf(self):
    times = self.retT[imin:imax]
    nrows = (int)((times[(len(times)-1)] - times[0])/self.mod) + 1

    x = []
    for i in range(nrows):
        x.append(self.matRetT[i][0] + self.mod * i)

    y = []
    for i in range(len(self.matRetT[0])):
        y.append(self.matRetT[0][i])
    y = y[:-1]

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

    z = [tuple(self.mat[i]) for i in range(len(self.mat))]

    Zzip = zip(*z)
    Z = [list(x) for x in Zzip]

    return mlab.mesh(Y,X,Z) 

没有显示 - >这可能是我错过了IPython shell中的-wthread命令吗?但据说默认情况下会打开模态。

X,Y,Z具有相同的大小,没有警告或异常,MayaVi场景1确实打开但仍为空。

这可能是meshgrid的问题,网格中需要参数的问题。无论如何阅读文档,我都找不到。

1 个答案:

答案 0 :(得分:1)

Matplotlib的“plot_surface”和Mayavi的“冲浪”遵循不同的逻辑。 正如Mayavi的文档中所示,meshgrid的结果应该转换为符合Mayavi的要求。

另外,使用Matplotlib函数(如griddata和Mayavi)时应该小心,因为它的结果假设是Matplotlib的一种meshgrid。 griddata的第四个和第五个参数应该切换到适合Mayavi。