数学建模——二维散乱点插值

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) 网格上计算 z 的插值结果。
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 网格以及对应的插值结果 zn 绘制等高线图。参数 8 表示要绘制的等高线数量。
c=plt.contour(xn,yn,zn,8)

#plt.clabel(c) 的作用是在等高线图 c 上添加数值标签。
plt.clabel(c)
plt.show()




最后的效果图:

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值