表:海底水深数据
x 129 140 103.5 88 185.5 195 105 157.5 107.5 77 81 162 162 117.5
y 7.5 141.5 23 147 22.5 137.5 85.5 -6.5 -81 3 56.5 -66.5 84 -33.5
z 4 8 6 8 6 8 8 9 9 8 8 9 4 9

注:数据来自《数学建模算法与应用(第2版)》,p91,司守奎,孙兆亮,国防工业出版社,2020.2重印

import numpy as np
points = np.array([129,140,103.5,88,185.5,195,105,157.5,107.5,77,81,162,162,117.5,7.5,141.5,23,
147,22.5,137.5,85.5,-6.5,-81,3,56.5,-66.5,84,-33.5]).reshape(14,2)
#这是给定数据的(xi, yi),只是先输入了全部x又输入了全部y
values = np.array([-4,-8,-6,-8,-6,-8,-8,-9,-9,-8,-8,-9,-4,-9])  #这是给定数据的zigrid_x, grid_y = np.mgrid[0:200:400j, -100:200:600j] #这是插值点的(xi,yi)
from scipy.interpolate import griddata            #这是求插值点的zi
grid_z0 = griddata(points, values, (grid_x, grid_y), method='nearest')
grid_z1 = griddata(points, values, (grid_x, grid_y), method='linear')
grid_z2 = griddata(points, values, (grid_x, grid_y), method='cubic')#下面是绘图
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d.axes3d import Axes3D
plt.figure()ax1 = plt.subplot2grid((2,2), (0,0), projection='3d')
ax1.plot_surface(grid_x, grid_y, grid_z0, color = "c")
ax1.set_title('nearest')ax2 = plt.subplot2grid((2,2), (0,1), projection='3d')
ax2.plot_surface(grid_x, grid_y, grid_z1, color = "c")
ax2.set_title('linear')ax3 = plt.subplot2grid((2,2), (1,0), projection='3d')
ax3.plot_surface(grid_x, grid_y, grid_z2, color = "r")
ax3.set_title('cubic')ax4 = plt.subplot2grid((2,2), (1,1), projection='3d')
ax4.scatter(points[:,0], points[:,1], values,  c= "b")
ax4.set_title('org_points')plt.tight_layout()
plt.show()

以下是三种插值方法+原数据绘图的结果:

附:一个解析明确的参考文档:http://liao.cpython.org/scipytutorial11/

最后作者想说的是:和matlab插值还是差很多,只可惜matlab输出的图片样式实在是充满了年代感。。

python绘制海底地形图(海底高程图)(3D绘图+三种插值法实践)相关推荐

  1. 可视化篇(四)——— python绘制双y轴、箱线图、概率分布三种图形及案例

    可视化篇(四)--- python绘制双y轴.箱线图.概率分布三种图形及案例 摘要 绘制双y轴图形 绘制箱线图 绘制概率分布图 摘要 本文演示了如何通过python绘制双y轴.箱线图.概率分布三种图形 ...

  2. python绘制帕累托图

    python绘制帕累托图代码 1 import pandas as pd 2 import matplotlib.pyplot as plt 3 plt.rcParams['font.sans-ser ...

  3. Python绘制股票K线图

    目录 1 股票K线图知识了解 2 用Python绘制股票K线图 2.1 安装绘制K线图的mpl_finance库 2.2 引入相关库 2.3 用Tushare库获取股票基本数据 2.4 日期格式调整及 ...

  4. ArcGIS+python 绘制人口流动OD图

    ArcGIS+python 绘制人口流动OD图 根据城市间人口流动数据构造城市间人口流动OD图. 数据准备: 1.人口流动数据,基础信息包括origin destination count. 2.基础 ...

  5. python双坐标轴箱线图,python绘制双y轴、箱线图、概率分布三种图形及案例

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 本文演示了如何通过python绘制双y轴.箱线图.概率分布三种图形,并给出了具体案例源代码供 ...

  6. Python绘制股票日K图(九)给折线图加标签

    股票当日成交额在股市的排名说明了市场对它的关注度,也是一个很好的指标. 免费获取更多最新股市数据关注头像同名恭祝好! 相应的代码同Python绘制股票日K图(七)给柱状图加上标签差不多,只不过需要注意 ...

  7. Python画图示例(4) 3D绘图

    Python画图示例(1) 一维数据集绘图 Python画图示例(2) 二维数据集绘图 Python画图示例(3) 其他绘图样式,散点图,直方图等 Python画图示例(4) 3D绘图 import ...

  8. Python selenium —— 一定要会用selenium的等待,三种等待方式解

    转自  http://lib.csdn.net/article/48/50937?knId=1313 Python selenium -- 一定要会用selenium的等待,三种等待方式解 发现太多人 ...

  9. python 需要在什么环境下运行_进入Python 环境进行编程并运行程序的三种方式

    越来越多人开始学习Python了,本篇介绍进入Python 环境进行编程并运行程序的三种方式,适合刚入门的小白参考.进入Python的前提是先下载安装Python软件,如下所示,建议下载最新版,安装过 ...

最新文章

  1. php 去掉数组相同元素,php怎么去掉数组中重复的元素
  2. WindowsPhone7入手,实在的照片
  3. 设 l í {a,b,c}* 是满足下述条件的符号串构成的语言,编译原理模拟试题1和2的答案...
  4. 极大似然估计和贝叶斯估计
  5. 跳槽必加薪?跳槽是涨薪最快的方式么
  6. 记一次mongdb搭建复制集的小故障
  7. 多媒体封装格式的比较
  8. REDIS学习总结(一)单机集群搭建
  9. 【工作技巧】WinRAR去除广告
  10. html相对定位 不占位置,CSS position 相对定位和绝对定位
  11. 挥一挥衣袖,贝索斯宣布“退位”,去追寻“诗和远方”
  12. 星际无限高级合伙人培训大会在深圳南山举行
  13. 仿QQ好友列表,QListWidget!
  14. 张亚飞《.Net for Flash FMS》读后笔记二
  15. CV_shortcomings of original GAN
  16. 学python能做什么兼职-初学Python到月入过万最快的兼职途径(纯干货)
  17. day32_安卓基础之activity生命周期_receiver广播接收者
  18. Say Hello to Integers(10分)
  19. 郝健: Linux内存管理学习笔记-第5节课
  20. 怎么走着走着就变“烟囱”了呢?| 建设数据中台系列(二)

热门文章

  1. 仙剑奇侠传四服务器维护,仙剑奇侠传四手游无法登陆游戏怎么办
  2. LeetCode-5040-边框着色-C语言
  3. HP V3500简要拆机流程
  4. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java宜居家居用品网jte0e
  5. CoreOS发布开源容器漏洞分析工具Clair
  6. 编程语言c沙浦,大兴智能机械数控加工中心自动编程的分类及其编程特点
  7. 物联网RFID测试点-方向
  8. 【Java编程系列】Minio实现文件上传下载
  9. SQL server 数据库单列分组查询
  10. unity 音乐小游戏