python画三维立体图难吗_Python画三维图-----插值平滑数据
一、二维的插值方法:
原始数据(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画三维图-----插值平滑数据相关推荐
- python 画三维函数图-Python画三维图-----插值平滑数据
一.二维的插值方法: 原始数据(x,y) 先对横坐标x进行扩充数据量,采用linspace.[如下面例子,由7个值扩充到300个] 采用scipy.interpolate中的spline来对纵坐标数据 ...
- python画箭头表示风速风向_python画风羽及风羽定义
basemap使用手册:链接:https://pan.baidu.com/s/1CUgQcsuYMbJAdCuij4WsLQ 提取码:aw16 如果想用箭头画风场,请看另一篇python matplo ...
- matlab 三维立体图,(精)MATLAB三维图形绘制.ppt
4.2 MATLAB的 三维图形绘制 二.绘制三维网格图和曲面图 2. 三维网格图 3. 三维曲面图 三.绘制三维旋转体 四.立体图形与图轴的控制 五.色彩的控制 2.色图的显示和处理 (2) 浓淡处 ...
- python画三维立体图完整代码_python之画三维图像
一:利用的包: (1)构建三维对象:mpl_toolkits.mplot3d里面导入Axes3D (2)数据方面操作:numpy (3)绘图工具包:matplotlib.pyplot 二:绘图: 1. ...
- python画三维立体图难吗_万万没想到,Python竟能绘制出如此酷炫的三维图
作者 | Jay Alammar转载自 | 高级农民工 通常我们用 Python 绘制的都是二维平面图,但有时也需要绘制三维场景图,比如像下面这样的: 这些图怎么做出来呢?今天就来分享下如何一步步绘制 ...
- python画三维立体图-如何用Matplotlib 画三维图的示例代码
用Matplotlib画三维图 最基本的三维图是由(x, y, z)三维坐标点构成的线图与散点图,可以用ax.plot3D和ax.scatter3D函数来创建,默认情况下,散点会自动改变透明度,以在平 ...
- Python知道cos值求角度_Python——画一棵漂亮的樱花树
最近用Python(大多是turtle库)绘制的樱花树有点火,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成喔~) one 樱花树 (一) 动态生成樱花 效 ...
- 用python画颗爱心祝生日快乐_Python画颗爱心祝生日快乐
年年有今日,岁岁有今朝,为了幸福生活和家庭和谐,我家那位每年的生日是必须要认真准备认真过的.蛋糕和生日礼物是不能少的,更重要的是我一定要陪在身边.除此之外,今年再玩上一点花样,用Python来画颗心出 ...
- python绘制不带颜色曲线图_Python画曲线图
画图方法 from matplotlib import font_manager import numpy as np import matplotlib . pyplot as plt zh_fon ...
最新文章
- Linux主机WordPress伪静态设置方法
- mysql补充(3)优化sql语句查询常用的30种方法
- 详细分解Transformer各部件总结
- 特征工程(1):特征提取、特征构建、特征选择的区别
- 线性时间查找固定频率的元素
- 另一种办法直接在宿主机上的文件夹内查看Docker镜像运行的日志文件
- oracle客户端和ssh区别,oracle 使用SSH 转发功能
- Spring Boot使用Poi将Excel导入进数据库
- oracle11g手工监听配置,手工在同一主机创建主备库oracle11g active dataguard
- Go 基本语法之变量遮蔽问题
- NetBPM的nPdl的第一遍翻译
- 手机浏览器都是按照什么分辨率解析移动端网页的
- iOS UDP和TCP测试工具sokit
- 如何用Java实现进度条
- 千里达v1000时速_重新定义性价比 千里达V1000碳架山地车 评测
- 虚幻引擎UE编辑器卡顿问题
- gitlab中创建项目组及项目
- Windows10新版本设置卓越性能
- 计算特征根时出现复数 ComplexWarning: Casting complex values to real discards the imaginary part
- Elliptic Labs进军国际市场, 推出Poco F4 GT游戏智能手机
热门文章
- java怎么设置全局变量_浅谈Java开发中如何定义的全局变量
- SLAM本质剖析-G2O
- pdf转图片,图片转pdf,word转图片,word转pdf
- 实训十六:路由器RIPV2配置
- linux中root权限找tmp路径,通过可写文件获取 Linux root 权限的 5 种方法-tmp文件
- oracle ip策略,ip rule -- 路由策略数据库管理命令
- 基于JAVA房屋租赁网站计算机毕业设计源码+系统+lw文档+部署
- 新东方雅思词汇(List 16 ~ List 20)
- Hadoop读书笔记(八)MapReduce 打成jar包demo
- 计算机控制技术大林算法计算题,计算机控制技术作业