一、二维的插值方法:

原始数据(x,y)

先对横坐标x进行扩充数据量,采用linspace。【如下面例子,由7个值扩充到300个】

采用scipy.interpolate中的spline来对纵坐标数据y进行插值【也由7个扩充到300个】。

画图

importmatplotlib.pyplot as pltimportnumpy as np

#数据

T= np.array([6, 7, 8, 9, 10, 11, 12])

power= np.array([1.53E+03, 5.92E+02, 2.04E+02, 7.24E+01, 2.72E+01, 1.10E+01, 4.70E+00])

#插值from scipy.interpolate importspline

xnew= np.linspace(T.min(),T.max(),300) #300 represents number of points to make between T.min and T.max

power_smooth =spline(T,power,xnew)print(xnew.shape) #(300,)print(power_smooth.shape) #(300,)

#画图

plt.plot(xnew,power_smooth)

plt.show()

二、三维平滑图---插值:

1、数据:

x = [0.1,0.2,……,0.9] (shape = (9))

y = [0.1,0.2,……,0.9] (shape = (9))

z = 【81个数据】(shape = (81))

生成数据:

x = np.linspace(0.1,0.9,9)

y= np.linspace(0.1,0.9,9)

z= np.random.rand(81)

View Code

2、将x和y进行扩充到想要的大小:

【两种方法:np.arange和np.linspace】

xnew = np.arange(0.1, 1, 0.03) 【shape=(31)】

ynew = np.arange(0.1, 1, 0.03) 【shape=(31)】

或者

xnew = np.linspace(0.1, 0.9, 31)

ynew = np.linspace(0.1, 0.9, 31)

3、对z进行插值:

采用 scipy.interpolate.interp2d函数进行插值。

x,y原数据:【x.shape=9,y.shape=9,z.shape=81】

f = interpolate.interp2d(x, y, z, kind=‘cubic‘)

x,y扩充数据:【xnew.shape=31,y.shape=31】

znew = f(xnew, ynew) 【得到的znew.shape = (31,31)】

znew为插值后的z

4、画图:

采用 from mpl_toolkits.mplot3d import Axes3D进行画三维图

Axes3D简单用法:

importmatplotlib.pyplot as pltfrom mpl_toolkits.mplot3d importAxes3D

fig=plt.figure()

ax= fig.add_subplot(111, projection=‘3d‘)

View Code

比如采用plot_trisurf画三维图:plot_trisurf(x,y,z)

【plot_trisurf对数据要求是:x.shape = y.shape = z.shape,所以x和y的shape需要修改,采用np.meshgrid,且都为一维数据】

#修改x,y,z输入画图函数前的shape

xx1, yy1 =np.meshgrid(xnew, ynew)

newshape= (xx1.shape[0])*(xx1.shape[0])

y_input=xx1.reshape(newshape)

x_input=yy1.reshape(newshape)

z_input= znew.reshape(newshape)

View Code

5、所有代码:

#载入模块

importnumpy as npimportmatplotlib.pyplot as pltfrom mpl_toolkits.mplot3d importAxes3Dfrom matplotlib importcmimportpandas as pdimportseaborn as snsfrom scipy importinterpolate#生成数据

x = np.linspace(0.1,0.9,9)

y= np.linspace(0.1,0.9,9)

z= np.random.rand(81)#插值#xx, yy = np.meshgrid(x, y)

f= interpolate.interp2d(x, y, z, kind=‘cubic‘)

xnew= np.arange(0.1, 1, 0.03)

ynew= np.arange(0.1, 1, 0.03)

znew=f(xnew, ynew)#修改x,y,z输入画图函数前的shape

xx1, yy1 =np.meshgrid(xnew, ynew)

newshape= (xx1.shape[0])*(xx1.shape[0])

y_input=xx1.reshape(newshape)

x_input=yy1.reshape(newshape)

z_input=znew.reshape(newshape)#画图

sns.set(style=‘white‘)

fig=plt.figure()

ax= fig.add_subplot(111, projection=‘3d‘)

ax.plot_trisurf(x_input,y_input,z_input,cmap=cm.coolwarm)

plt.show()

原文地址:https://www.cnblogs.com/Lee-yl/p/10255666.html

python画三维立体图难吗_Python画三维图-----插值平滑数据相关推荐

  1. python 画三维函数图-Python画三维图-----插值平滑数据

    一.二维的插值方法: 原始数据(x,y) 先对横坐标x进行扩充数据量,采用linspace.[如下面例子,由7个值扩充到300个] 采用scipy.interpolate中的spline来对纵坐标数据 ...

  2. python画箭头表示风速风向_python画风羽及风羽定义

    basemap使用手册:链接:https://pan.baidu.com/s/1CUgQcsuYMbJAdCuij4WsLQ 提取码:aw16 如果想用箭头画风场,请看另一篇python matplo ...

  3. matlab 三维立体图,(精)MATLAB三维图形绘制.ppt

    4.2 MATLAB的 三维图形绘制 二.绘制三维网格图和曲面图 2. 三维网格图 3. 三维曲面图 三.绘制三维旋转体 四.立体图形与图轴的控制 五.色彩的控制 2.色图的显示和处理 (2) 浓淡处 ...

  4. python画三维立体图完整代码_python之画三维图像

    一:利用的包: (1)构建三维对象:mpl_toolkits.mplot3d里面导入Axes3D (2)数据方面操作:numpy (3)绘图工具包:matplotlib.pyplot 二:绘图: 1. ...

  5. python画三维立体图难吗_万万没想到,Python竟能绘制出如此酷炫的三维图

    作者 | Jay Alammar转载自 | 高级农民工 通常我们用 Python 绘制的都是二维平面图,但有时也需要绘制三维场景图,比如像下面这样的: 这些图怎么做出来呢?今天就来分享下如何一步步绘制 ...

  6. python画三维立体图-如何用Matplotlib 画三维图的示例代码

    用Matplotlib画三维图 最基本的三维图是由(x, y, z)三维坐标点构成的线图与散点图,可以用ax.plot3D和ax.scatter3D函数来创建,默认情况下,散点会自动改变透明度,以在平 ...

  7. Python知道cos值求角度_Python——画一棵漂亮的樱花树

    最近用Python(大多是turtle库)绘制的樱花树有点火,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成喔~) one 樱花树 (一) 动态生成樱花 效 ...

  8. 用python画颗爱心祝生日快乐_Python画颗爱心祝生日快乐

    年年有今日,岁岁有今朝,为了幸福生活和家庭和谐,我家那位每年的生日是必须要认真准备认真过的.蛋糕和生日礼物是不能少的,更重要的是我一定要陪在身边.除此之外,今年再玩上一点花样,用Python来画颗心出 ...

  9. python绘制不带颜色曲线图_Python画曲线图

    画图方法 from matplotlib import font_manager import numpy as np import matplotlib . pyplot as plt zh_fon ...

最新文章

  1. Linux主机WordPress伪静态设置方法
  2. mysql补充(3)优化sql语句查询常用的30种方法
  3. 详细分解Transformer各部件总结
  4. 特征工程(1):特征提取、特征构建、特征选择的区别
  5. 线性时间查找固定频率的元素
  6. 另一种办法直接在宿主机上的文件夹内查看Docker镜像运行的日志文件
  7. oracle客户端和ssh区别,oracle 使用SSH 转发功能
  8. Spring Boot使用Poi将Excel导入进数据库
  9. oracle11g手工监听配置,手工在同一主机创建主备库oracle11g active dataguard
  10. Go 基本语法之变量遮蔽问题
  11. NetBPM的nPdl的第一遍翻译
  12. 手机浏览器都是按照什么分辨率解析移动端网页的
  13. iOS UDP和TCP测试工具sokit
  14. 如何用Java实现进度条
  15. 千里达v1000时速_重新定义性价比 千里达V1000碳架山地车 评测
  16. 虚幻引擎UE编辑器卡顿问题
  17. gitlab中创建项目组及项目
  18. Windows10新版本设置卓越性能
  19. 计算特征根时出现复数 ComplexWarning: Casting complex values to real discards the imaginary part
  20. Elliptic Labs进军国际市场, 推出Poco F4 GT游戏智能手机

热门文章

  1. java怎么设置全局变量_浅谈Java开发中如何定义的全局变量
  2. SLAM本质剖析-G2O
  3. pdf转图片,图片转pdf,word转图片,word转pdf
  4. 实训十六:路由器RIPV2配置
  5. linux中root权限找tmp路径,通过可写文件获取 Linux root 权限的 5 种方法-tmp文件
  6. oracle ip策略,ip rule -- 路由策略数据库管理命令
  7. 基于JAVA房屋租赁网站计算机毕业设计源码+系统+lw文档+部署
  8. 新东方雅思词汇(List 16 ~ List 20)
  9. Hadoop读书笔记(八)MapReduce 打成jar包demo
  10. 计算机控制技术大林算法计算题,计算机控制技术作业