import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import interp1d
from mpl_toolkits import mplot3d
from scipy.interpolate import griddata
x=np.array([129,140,103.5,88,185.5,195,105,157.5,107.5,77,81,162,162,117.5])
y=np.array([7.5,141.5,23,147,22.5,137.5,85.5,-6.5,-81,3,56.5,-66.5,84,-33.5])
z=-np.array([4,8,6,8,6,8,8,9,9,8,8,9,4,9])
xy=np.vstack([x,y]).T
xn=np.linspace(x.min(),x.max(),100)
yn=np.linspace(y.min(),y.max(),100)
xng,yng=np.meshgrid(xn,yn)
#基于最近鄰插值方法,在 (xng, yng) 網(wǎng)格上計(jì)算 z 的插值結(jié)果。
zn=griddata(xy,z,(xng,yng),method='nearest')
plt.rc('font',size=16)
ax=plt.subplot(131,projection='3d')
ax.plot_surface(xng,yng,zn,cmap='viridis')
ax.set_xlabel('$x$')
ax.set_ylabel('$y$')
ax.set_zlabel('$z$')
plt.subplot(133)
#c = plt.contour(xn, yn, zn, 8) 的作用是使用 xn 和 yn 網(wǎng)格以及對(duì)應(yīng)的插值結(jié)果 zn 繪制等高線圖。參數(shù) 8 表示要繪制的等高線數(shù)量。
c=plt.contour(xn,yn,zn,8)
#plt.clabel(c) 的作用是在等高線圖 c 上添加數(shù)值標(biāo)簽。
plt.clabel(c)
plt.show()
最后的效果圖:
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-541060.html
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-541060.html
到了這里,關(guān)于數(shù)學(xué)建?!S散亂點(diǎn)插值的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!