python实现二维插值的三维显示


Posted in Python onDecember 17, 2018

本文实例为大家分享了二维插值的三维显示具体代码,供大家参考,具体内容如下

# -*- coding: utf-8 -*-
"""
演示二维插值。
"""
# -*- coding: utf-8 -*-
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib as mpl
from scipy import interpolate
import matplotlib.cm as cm
import matplotlib.pyplot as plt
 
 
def func(x, y):
 return (x + y) * np.exp(-5.0 * (x ** 2 + y ** 2))
 
 
# X-Y轴分为20*20的网格
x = np.linspace(-1, 1, 20)
y = np.linspace(-1, 1, 20)
x, y = np.meshgrid(x, y) # 20*20的网格数据
 
fvals = func(x, y) # 计算每个网格点上的函数值 15*15的值
 
fig = plt.figure(figsize=(9, 6)) #设置图的大小
# Draw sub-graph1
ax = plt.subplot(1, 2, 1, projection='3d') #设置图的位置
surf = ax.plot_surface(x, y, fvals, rstride=2, cstride=2, cmap=cm.coolwarm, linewidth=0.5, antialiased=True) #第四个第五个参数表示隔多少个取样点画一个小面,第六个表示画图类型,第七个是画图的线宽,第八个表示抗锯齿
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('f(x, y)') #标签
plt.colorbar(surf, shrink=0.5, aspect=5) # 标注
 
# 二维插值
newfunc = interpolate.interp2d(x, y, fvals, kind='cubic') # newfunc为一个函数
 
# 计算100*100的网格上的插值
xnew = np.linspace(-1, 1, 100) # x
ynew = np.linspace(-1, 1, 100) # y
fnew = newfunc(xnew, ynew) # 仅仅是y值 100*100的值 np.shape(fnew) is 100*100
xnew, ynew = np.meshgrid(xnew, ynew)
ax2 = plt.subplot(1, 2, 2, projection='3d')
surf2 = ax2.plot_surface(xnew, ynew, fnew, rstride=2, cstride=2, cmap=cm.coolwarm, linewidth=0.5, antialiased=True)
ax2.set_xlabel('xnew')
ax2.set_ylabel('ynew')
ax2.set_zlabel('fnew(x, y)')
plt.colorbar(surf2, shrink=0.5, aspect=5) # 标注
plt.show()

python实现二维插值的三维显示

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 实现插入排序算法
Jun 05 Python
在Python的Flask框架中使用模版的入门教程
Apr 20 Python
Python中正则表达式的详细教程
Apr 30 Python
Python的Django框架中URLconf相关的一些技巧整理
Jul 18 Python
Python实现两个list对应元素相减操作示例
Jun 09 Python
pytorch使用 to 进行类型转换方式
Jan 08 Python
4行Python代码生成图像验证码(2种)
Apr 07 Python
Python打印不合法的文件名
Jul 31 Python
python爬虫智能翻页批量下载文件的实例详解
Feb 02 Python
Python使用cn2an实现中文数字与阿拉伯数字的相互转换
Mar 02 Python
Pytorch 如何加速Dataloader提升数据读取速度
May 28 Python
python高温预警数据获取实例
Jul 23 Python
Python实现分段线性插值
Dec 17 #Python
Python 获取主机ip与hostname的方法
Dec 17 #Python
使用 Visual Studio Code(VSCode)搭建简单的Python+Django开发环境的方法步骤
Dec 17 #Python
python样条插值的实现代码
Dec 17 #Python
解决python3 HTMLTestRunner测试报告中文乱码的问题
Dec 17 #Python
python3爬虫获取html内容及各属性值的方法
Dec 17 #Python
解决Python中list里的中文输出到html模板里的问题
Dec 17 #Python
You might like
php实现简单洗牌算法
2013/06/18 PHP
Windows下Apache + PHP SESSION丢失的解决过程全纪录
2015/04/07 PHP
PHP Smarty模版简单使用方法
2016/03/30 PHP
PHP GD库相关图像生成和处理函数小结
2016/09/30 PHP
php实现博客,论坛图片防盗链的方法
2016/10/15 PHP
CI框架数据库查询缓存优化的方法
2016/11/21 PHP
在IE模态窗口中自由查看HTML源码的方法
2007/03/08 Javascript
JavaScript 学习笔记(十五)
2010/01/28 Javascript
基于JavaScript实现继承机制之原型链(prototype chaining)的详解
2013/05/07 Javascript
常用js字符串判断方法整理
2013/10/18 Javascript
js获取下拉列表框中的value和text的值示例代码
2014/01/11 Javascript
jquery检测input checked 控件是否被选中的方法
2014/03/26 Javascript
js 与 php 通过json数据进行通讯示例
2014/03/26 Javascript
js实现select组件的选择输入过滤代码
2014/10/14 Javascript
页面向下滚动ajax获取数据的实现方法(兼容手机)
2016/05/24 Javascript
JS for...in 遍历语句用法实例分析
2016/08/24 Javascript
Ubuntu 16.04 64位中搭建Node.js开发环境教程
2016/10/19 Javascript
微信小程序 参数传递详解
2016/10/24 Javascript
webpack构建react多页面应用详解
2017/09/15 Javascript
JavaScript数组特性与实践应用深入详解
2018/12/30 Javascript
vue-router传参用法详解
2019/01/19 Javascript
小程序开发中如何使用async-await并封装公共异步请求的方法
2019/01/20 Javascript
小程序怎样让wx.navigateBack更好用的方法实现
2019/11/01 Javascript
vue实现移动端图片上传功能
2019/12/23 Javascript
JavaScript实现简单计算器
2020/03/19 Javascript
Javascript实现简易天数计算器
2020/05/18 Javascript
vant中的toast轻提示实现代码
2020/11/04 Javascript
Python struct模块解析
2014/06/12 Python
使用Python编写简单网络爬虫抓取视频下载资源
2014/11/04 Python
使用PyWeChatSpy自动回复微信拍一拍功能的实现代码
2020/07/02 Python
CSS3 画基本图形,圆形、椭圆形、三角形等
2016/09/20 HTML / CSS
美国按摩椅批发网站:Titan Chair
2018/12/27 全球购物
澳洲CFL商城:CHEMIST FOR LESS(中文)
2021/02/28 全球购物
节能环保标语
2014/06/12 职场文书
社区活动总结
2015/02/04 职场文书
Python编写nmap扫描工具
2021/07/21 Python