如何在Python的3D绘图中将浮点矩阵显示为高程值?

如何在Python的3D绘图中将浮点矩阵显示为高程值?,python,matrix,3d,matplotlib,elevation,Python,Matrix,3d,Matplotlib,Elevation,我目前有一个二维浮动矩阵的热图(精确地说是浮动列表列表),我可以用matplotlib很容易地在二维中显示它,但我想在三维绘图中显示它,这样列和行索引可以分别按X和Y值显示,矩阵中的值是Z(高程)值。我可以用什么来做?我尝试使用Axes3D,但它似乎不太合适(或者可能是我用错了?)。我想做的是在概念上非常简单,假设矩阵是一个DEM并显示它 此外,如果可能的话,我希望能够在飞行中改变视角,而不必重新生成绘图 有什么想法吗 这两个问题是相关的,但不能完全回答我的问题: 注意:浮点矩阵相当大,通常

我目前有一个二维浮动矩阵的热图(精确地说是浮动列表列表),我可以用matplotlib很容易地在二维中显示它,但我想在三维绘图中显示它,这样列和行索引可以分别按X和Y值显示,矩阵中的值是Z(高程)值。我可以用什么来做?我尝试使用Axes3D,但它似乎不太合适(或者可能是我用错了?)。我想做的是在概念上非常简单,假设矩阵是一个DEM并显示它

此外,如果可能的话,我希望能够在飞行中改变视角,而不必重新生成绘图

有什么想法吗

这两个问题是相关的,但不能完全回答我的问题:


注意:浮点矩阵相当大,通常为100x100或更大,上次我尝试在3D中绘制它时,我的系统内存不足并开始抖动。

您的用例似乎是为mayavi/mlab量身定制的,它的功能完全符合您的要求,默认情况下允许交互式3D旋转:

import numpy as np; from mayavi import mlab
data = np.random.random((100,100))
mlab.surf(data)
mlab.show()

请参阅:@tcaswell这些方法需要在三维空间中明确定义所有点。我拥有的浮点矩阵应该像像素一样有规律地间隔(我已经导出到图像中了)。二维浮点数组确实明确定义了三维空间中的点,但这些方法并不这样认为,需要额外的结构,如meshgrid,它需要更多的计算(即使只是邻域),然后才能显示任何内容。(理想情况下,我需要这样的东西:)这正是
mlab.surf
所做的,它只是对您隐藏;)也就是说,
mayavi
是一个更好的3D作品选择,因为它基于opengl。谢谢!这正是我想要的。它工作得很好。