一、二维的插值方法:

原始数据(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. 直播|深大周池:跨数据中心的高效大图处理问题研究
  2. Codeforces Round #423 (Div. 2, rated, based on VK Cup Finals) E. DNA Evolution 树状数组
  3. STM32F103之FLASH组织
  4. 朱峰谈概念设计(五):进入焦距
  5. 从易到难,写一个JavaScript加载器之一
  6. Delphi clientdataset的详细介绍
  7. 经典面试题(53):以下代码将输出的结果是什么?
  8. 网信办:从严整治激情打赏、高额打赏、诱导打赏
  9. php 计算数组的差值,数组计算差值及项的小计,该如何处理
  10. PL/SQL程序设计 第四章 游标的使用
  11. linux memcache端口占用,Linux: memcache的安装和启动、停止、重启, 检查memcache server是否开启...
  12. websocket传输数据大小限制_websocket 发送字符串数据上限是多少
  13. 001-开发环境及其基本常识
  14. 关于Tortoise git汉化包装了,不管用,仍然是英文菜单的问题记录
  15. 《Excel VBA实战技巧精粹》终于登场了
  16. nginx openresty DNS resolver配置实例,通过配置resolver解决proxy_pass中使用变量参数,高性能负载均衡 NGINX Plus 中 RESTful API
  17. STM32CubeMX+ETH+DP83848+Lwip 成功ping通(基于stm32F107开发板)
  18. 最近几天支付宝群里都在议论网商贷额度突然降低和消失,这是怎么回事?
  19. Android逆向系列(一):初探Android逆向
  20. 矩阵求和c语言通俗易懂

热门文章

  1. Towards the Model-Driven Engineering of Security Requirements for Embedded System
  2. 分析kdump(vmcore)
  3. 面向对象编程是计算机科学的最大错误
  4. 仅作笔记用:Windows 11 通过 PowerShell 打开 IE 浏览器
  5. LXC之.conf配置文件详解
  6. C++ ofstream崩溃记录
  7. final finally finalized 的区别
  8. 名画144 王冕《画选三幅》
  9. Words 2016.12.11
  10. SOLIDWORKS草图块功能的使用