我以here为例,说明我想做什么:
import numpy as np
from matplotlib.mlab import griddata
import matplotlib.pyplot as plt
xs0 = [1,4,0.5,2,5,10,33,0.04]
ys0 = [2,5,44,0.33,2,14,20,0.03]
zs0 = [0.77, 0.88, 0.65, 0.55, 0.89, 0.9, 0.8,0.95]
N = 30j
extent = (np.min(xs0),np.max(xs0),np.min(ys0),np.max(ys0))
xs,ys = np.mgrid[extent[0]:extent[1]:N, extent[2]:extent[3]:N]
resampled = griddata(xs0, ys0, zs0, xs, ys, interp='linear')
plt.imshow(np.fliplr(resampled).T, extent=extent,interpolation='none')
plt.colorbar()
但是有很多问题我没有成功解决:
如果我在imshow函数中使用了color= 'bwr'
,它将无法正常工作!我不明白为什么。
最重要的一点:我们如何才能为x脓肿修复某个垃圾箱,为y修复另一个垃圾箱?在我的测量中,每次扫描(y脓肿)取800分,但只有50个不同的x值。那是个问题。我希望能够独立选择它们,而无需在两个不同的x值之间进行任何插值。我可以将xs,ys = np.mgrid[extent[0]:extent[1]:N, extent[2]:extent[3]:N]
更改为xs,ys = np.mgrid[extent[0]:extent[1]:N, extent[2]:extent[3]:M]
并分别创建N = 30j
和M = 300j
,但这并不方便...
最后一个问题:N = 30j
是什么?为什么不只是N = 30
?!
非常感谢您的帮助!如您所见,我有点迷路了... (当然,不必强迫使用此代码...我只有要绘制的X,Y,Z数据)