python绘制海底地形图(海底高程图)(3D绘图+三种插值法实践)
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绘图+三种插值法实践)相关推荐
- 可视化篇(四)——— python绘制双y轴、箱线图、概率分布三种图形及案例
可视化篇(四)--- python绘制双y轴.箱线图.概率分布三种图形及案例 摘要 绘制双y轴图形 绘制箱线图 绘制概率分布图 摘要 本文演示了如何通过python绘制双y轴.箱线图.概率分布三种图形 ...
- python绘制帕累托图
python绘制帕累托图代码 1 import pandas as pd 2 import matplotlib.pyplot as plt 3 plt.rcParams['font.sans-ser ...
- Python绘制股票K线图
目录 1 股票K线图知识了解 2 用Python绘制股票K线图 2.1 安装绘制K线图的mpl_finance库 2.2 引入相关库 2.3 用Tushare库获取股票基本数据 2.4 日期格式调整及 ...
- ArcGIS+python 绘制人口流动OD图
ArcGIS+python 绘制人口流动OD图 根据城市间人口流动数据构造城市间人口流动OD图. 数据准备: 1.人口流动数据,基础信息包括origin destination count. 2.基础 ...
- python双坐标轴箱线图,python绘制双y轴、箱线图、概率分布三种图形及案例
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 本文演示了如何通过python绘制双y轴.箱线图.概率分布三种图形,并给出了具体案例源代码供 ...
- Python绘制股票日K图(九)给折线图加标签
股票当日成交额在股市的排名说明了市场对它的关注度,也是一个很好的指标. 免费获取更多最新股市数据关注头像同名恭祝好! 相应的代码同Python绘制股票日K图(七)给柱状图加上标签差不多,只不过需要注意 ...
- Python画图示例(4) 3D绘图
Python画图示例(1) 一维数据集绘图 Python画图示例(2) 二维数据集绘图 Python画图示例(3) 其他绘图样式,散点图,直方图等 Python画图示例(4) 3D绘图 import ...
- Python selenium —— 一定要会用selenium的等待,三种等待方式解
转自 http://lib.csdn.net/article/48/50937?knId=1313 Python selenium -- 一定要会用selenium的等待,三种等待方式解 发现太多人 ...
- python 需要在什么环境下运行_进入Python 环境进行编程并运行程序的三种方式
越来越多人开始学习Python了,本篇介绍进入Python 环境进行编程并运行程序的三种方式,适合刚入门的小白参考.进入Python的前提是先下载安装Python软件,如下所示,建议下载最新版,安装过 ...
最新文章
- php 去掉数组相同元素,php怎么去掉数组中重复的元素
- WindowsPhone7入手,实在的照片
- 设 l í {a,b,c}* 是满足下述条件的符号串构成的语言,编译原理模拟试题1和2的答案...
- 极大似然估计和贝叶斯估计
- 跳槽必加薪?跳槽是涨薪最快的方式么
- 记一次mongdb搭建复制集的小故障
- 多媒体封装格式的比较
- REDIS学习总结(一)单机集群搭建
- 【工作技巧】WinRAR去除广告
- html相对定位 不占位置,CSS position 相对定位和绝对定位
- 挥一挥衣袖,贝索斯宣布“退位”,去追寻“诗和远方”
- 星际无限高级合伙人培训大会在深圳南山举行
- 仿QQ好友列表,QListWidget!
- 张亚飞《.Net for Flash FMS》读后笔记二
- CV_shortcomings of original GAN
- 学python能做什么兼职-初学Python到月入过万最快的兼职途径(纯干货)
- day32_安卓基础之activity生命周期_receiver广播接收者
- Say Hello to Integers(10分)
- 郝健: Linux内存管理学习笔记-第5节课
- 怎么走着走着就变“烟囱”了呢?| 建设数据中台系列(二)