1

在玩 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) 

没有显示->这可能是我错过了-wthreadIPython shell 中的命令吗?然而,据说模态默认是打开的。

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

这可能是网格网格的问题,网格中需要参数的问题。但是通过文档阅读,我无法找到。

4

1 回答 1

1

Matplotlib 的“plot_surface”和 Mayavi 的“surf”遵循不同的逻辑。正如 Mayavi 的文档中所指出的,meshgrid 的结果应该被转置以符合 Mayavi 的要求。

此外,在将网格数据等 Matplotlib 函数与 Mayavi 结合使用时应该小心,因为它的结果假定 Matplotlib 是一种网格网格。griddata 的第四个和第五个参数应该切换到适合 Mayavi。

于 2013-07-09T19:03:09.923 回答