8

我有一个包含一百万行的三列(x 像素、y 像素、z 值)数据。数据来自图像并且存在重复的 z 值。现在我需要制作一个曲面图。这张图片就是一个很好的例子。但现在输出图像为空。有人可以检查代码吗?

import numpy as np
from enthought.mayavi import mlab
from scipy.interpolate import griddata
x,y,z = np.loadtxt('test.csv',delimiter=',',usecols=(0,1,2),unpack=True) 
xi,yi = np.mgrid[0:3000:3000j, 0:3000:3000j]
zi = griddata((x, y), z, (xi, yi),method='linear')
mlab.surf(xi,yi,zi)
mlab.show()
4

1 回答 1

4

如果没有数据,我无法检查代码,但我怀疑问题在于您使用默认值fill_value=nan作为griddata参数,因此如果您的网格点超出 (x,y) 点的空间,则是网格中的 NaN,mlab 可能无法处理(matplotlib 不容易)。尝试设置fill_value=0或其他合适的实数。

于 2013-09-18T17:36:57.460 回答