我试图遵循一个MATLAB的meshgrid+插值的例子。示例代码位于HERE。在那个网站上,我将通过以下示例:示例-在曲面上显示非均匀数据。在
现在,我想用Python(Numpy+Matplotlib)生成一个类似于MATLAB中显示的图。这是MATLAB绘制的图:
我在Python中做这个有困难。下面是我在python2.7中的代码和输出:from matplotlib.mlab import griddata
import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
x = np.random.rand(200)*16 - 8
y = np.random.rand(200)*16 - 8
r = np.sqrt(x**2 + y**2)
z = np.sin(r)/r
xi = np.linspace(min(x),max(x), 100)
yi = np.linspace(min(y),max(y), 200)
X,Y = np.meshgrid(xi,yi)
Z = griddata(x, y, z, X, Y, interp='linear')
fig = plt.figure()
ax = fig.gca(projection='3d')
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1,cmap=cm.jet)
这是我尝试用matplotlib和NumPy来完成这个任务的结果。
。在
有人能帮我在matplotlib中重新创建matplotlib中的MATLAB绘图,作为网格图还是曲面图?在