1

我正在努力理解 surf 的真正工作原理以及如何在我的上下文中使用它的方法。我正在尝试使用 Mayavi 的 surf 来绘制 2D imshow() 的 3D 表示。我知道这是否是正确的路径,所以我也可以使用其他建议。

到目前为止,基本上我已经达到了这一点:数据是一个数组,其中包含与 x 和 y 坐标相对应的值。因此,数据的形状是 (50L, 50L) 并且每个元素对应于我的 50*50 元素对的值。

imshow(data, cmap=cm.jet, origin='upper', interpolation=None) # My 2D imshow... working fine here.

# Trying to have a 3D representation
nx = linspace(0, 4, 50)
ny = linspace(0, 4, 50)
x_3d, y_3d = meshgrid(nx, ny)
s = surf(x_3d, y_3d, data)

脚本启动时没有错误,但是我在 Mayavi 场景中没有任何可视化。

感谢您的帮助,如果有人对如何绘制 2D imshow 的 3D 表示有更好的建议,我也很乐意接受。

4

1 回答 1

0

您忘记了mlab.show()最后的命令,并且 surf 需要三个参数我认为 x 和 y 只是您的点的位置,您需要第三个数组来确定 z 坐标。

于 2015-05-19T11:22:11.417 回答