(1.41)--5-3-1三维数据可视化.ppt

上传人:奉*** 文档编号:96451911 上传时间:2023-11-29 格式:PPT 页数:20 大小:28.82MB
返回 下载 相关 举报
(1.41)--5-3-1三维数据可视化.ppt_第1页
第1页 / 共20页
(1.41)--5-3-1三维数据可视化.ppt_第2页
第2页 / 共20页
点击查看更多>>
资源描述

《(1.41)--5-3-1三维数据可视化.ppt》由会员分享,可在线阅读,更多相关《(1.41)--5-3-1三维数据可视化.ppt(20页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第5章 数据可视化-Matplotlib第6讲 三维图形可视化1Contents目录02三维散点图三维散点图03三维线图三维线图04三维线框图三维线框图05三维柱状图三维柱状图013D3D可视化绘图基础可视化绘图基础mpl_toolkits.mplot3d是是matplotlib库库中中专专门门用用来来绘绘制制三三维维图图形形的的工工具具包包,虽虽然然目目前前mplot3d也也不不是是最最好好的的3D图图形形绘绘制制包包,但但它它是是随随着着matplotlib产产生生的的,使使用用mplot3d提提供供的的类类和和接接口口,能能够够让让我我们们熟熟悉悉3D图图形形绘绘制制的的一一般般流流程程

2、和和方方法。法。mplot3d模块下主要包含模块下主要包含4个大类,分别是个大类,分别是axes3d、axis3d、art3d和和proj3d。axes3d类中主要包含了实现绘图的各种类和方法;类中主要包含了实现绘图的各种类和方法;axis3d主要包含了和坐主要包含了和坐标轴相关的类和方法;标轴相关的类和方法;art3d主要包含了一些可将主要包含了一些可将2D图形转换并用于图形转换并用于 3D绘绘制的类和方法;制的类和方法;proj3d中则主要包含一些其他的类和方法,如计算三维向中则主要包含一些其他的类和方法,如计算三维向量长度等。量长度等。3D可视化绘图基础绘图步骤:绘图步骤:a)导入库导入

3、库from mpl_toolkits.mplot3d.axes3d import Axes3Dfrom mpl_toolkits.mplot3d import Axes3Db)数据的生成或获取数据的生成或获取c)创建创建3D图形对象图形对象 创建创建Axes3D对象的方式一般有两种,如下:对象的方式一般有两种,如下:fig=plt.figure()ax=p3d.Axes3D(fig)或者或者 fig=plt.figure()ax=fig.add_subplot(111,projection=3d)d)设置绘图方法参数并进行绘图设置绘图方法参数并进行绘图3D可视化绘图基础 除除少少数数绘绘图图方

4、方法法外外,3D绘绘图图的的函函数数几几乎乎与与2D相相同同。当当然然,3D绘绘图图函函数数的的参参数数是是与与2D不不同同的的,需需要要为为3个个坐坐标标轴轴提提供供数数据据。例例如如,在在绘绘制制线线形形图图时时,我我们们可可以以使使用用函函数数mpl_toolkits.mplot3d.Axes3D.plot(),但但要要为为其其指指定定xs、ys、zs和和zdir参数,对这些参数的含义解释如下。参数,对这些参数的含义解释如下。1)xs和和ys:x轴和轴和y轴的坐标。轴的坐标。2)zs:z轴的坐标值,可以是所有点对应一个值,也可以是每个点对应一个值。轴的坐标值,可以是所有点对应一个值,也可

5、以是每个点对应一个值。3)zdir:决定哪个坐标轴为:决定哪个坐标轴为z轴的方向。通常是轴的方向。通常是zs,但也可以是,但也可以是xs或或ys。3D可视化绘图基础02三维散点图3D散散点点图图的的绘绘制制,可可以以使使用用Axes3D对对象象的的scatter()或或scatter3D()函函数数,其其函数原型及参数含义如下。函数原型及参数含义如下。scatter(xs,ys,zs,zdir,s,c,depthshade,*args,*kwargs)s:即:即size,表示散点的大小,默认值为,表示散点的大小,默认值为20;c:即:即color,表示绘图的颜色映射,默认为,表示绘图的颜色映射

6、,默认为None;depthshade:决定是否为散点的标记加阴影,默认为:决定是否为散点的标记加阴影,默认为True。图图5.30三维散点图三维散点图3D散点图import numpy as npfrom mpl_toolkits.mplot3d import Axes3Dimport matplotlib.pyplot as plt#生成一组生成一组3D正态分布的数据,采样点个数为正态分布的数据,采样点个数为500count=500dim=3samples=np.random.multivariate_normal(np.zeros(dim),np.eye(dim),count)#计算每个

7、样本到原点的距离计算每个样本到原点的距离(范数范数),并与均匀分布运算吻合,并与均匀分布运算吻合#从而得到球体内均匀分布的样本从而得到球体内均匀分布的样本for i in range(samples.shape0):r=np.power(np.random.random(),1.0/3.0)#开三次方开三次方 Frobenius=np.linalg.norm(samplesi)#计算范数计算范数 samplesi*=r/Frobenius#吻合运算吻合运算upper_samples=#分类初始化分类初始化lower_samples=3D可视化绘图基础for x,y,z in samples:#

8、3x+2y-z=1作为判别平面作为判别平面 if z3*x+2*y-1:upper_samples.append(x,y,z)else:lower_samples.append(x,y,z)fig=plt.figure(3D scatter plot)ax=Axes3D(fig)#创建创建3D坐标系对象坐标系对象uppers=np.array(upper_samples)lowers=np.array(lower_samples)#用不同颜色不同形状的图标表示平面上下的样本用不同颜色不同形状的图标表示平面上下的样本#判别平面上半部分为红色圆点,下半部分为绿色星号判别平面上半部分为红色圆点,下半

9、部分为绿色星号ax.scatter(uppers:,0,uppers:,1,uppers:,2,c=r,marker=o)ax.scatter(lowers:,0,lowers:,1,lowers:,2,c=g,marker=*)plt.show()3D可视化绘图基础033D线形图3D线线形形图图的的绘绘制制,可可以以使使用用Axes3D对对象象的的plot()或或plot3D()函函数数,其其函函数数原型为:原型为:plot(xs,ys,*args,*kwargs),其参数含义同上。,其参数含义同上。图图5.31三维线形图三维线形图import numpy as npimport matpl

10、otlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3D#生成数据生成数据X=np.linspace(-6*np.pi,6*np.pi,1000)Y=np.sin(X)Z=np.cos(X)fig=plt.figure()#创建画布创建画布ax=Axes3D(fig)#创建创建3D坐标轴坐标轴ax.plot(X,Y,Z)#绘制线型图绘制线型图plt.show()3D线形图043D线框图3D线线框框图图的的绘绘制制,可可以以使使用用Axes3D对对象象的的plot_wireframe()函函数数,其其函函数数原型为:原型为:plot_w

11、ireframe(X,Y,Z,*args,*kwargs)其中常用的参数含义如下:其中常用的参数含义如下:X,Y,Z:三维坐标点;:三维坐标点;rcount,ccount:采样点数,默认为:采样点数,默认为50;rstride,cstride:采样步长,越小采样数越多:采样步长,越小采样数越多图图5.32 三维线框图三维线框图3D线框图import numpy as npimport matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3DX=np.arange(-4,4,0.05)#创建数据列表创建数据列表 Y=np.ar

12、ange(-4,4,0.05)#通过复制向量通过复制向量X、Y的方式,创建对应的稀疏矩阵的方式,创建对应的稀疏矩阵X,Y=np.meshgrid(X,Y,sparse=True)Z=np.sin(X*2+Y*2)/(X*2+Y*2)fig=plt.figure(figsize=(8,6)ax=Axes3D(fig)#创建创建Axes3D对象对象ax.plot_wireframe(X,Y,Z,rstride=4,cstride=4,color=gold)ax.set_zlim(-2,2)plt.show()3D线框图053D柱状图3D柱柱状状图图的的绘绘制制,可可以以使使用用Axes3D对对象象

13、的的bar()或或bar3D()函数,函数的原型如下:函数,函数的原型如下:bar(left,height,zs=0,zdir=z,*args,*kwargs)或或bar3d(x,y,z,dx,dy,dz,color=None,zsort=average,shade=True,*args,*kwargs)其主要参数的含义如下:其主要参数的含义如下:left:x轴上的水平坐标;轴上的水平坐标;height:y轴上的柱子高度;轴上的柱子高度;zs:柱柱子子的的z坐坐标标,若若指指定定一一个个标标量量值值,则所有柱子在同样的则所有柱子在同样的z位置位置;x,y,z:柱子锚点的坐标;:柱子锚点的坐标;

14、dx,dy,dz:分分别别指指柱柱子子的的宽宽度度、深深度度和和高高度,即度,即x,y,z的大小;的大小;图图5.33 三维柱状图三维柱状图3D柱状图import numpy as npimport matplotlib as mplimport matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3Dmpl.rcParamsfont.size=10#指定绘图字体的大小指定绘图字体的大小fig=plt.figure()ax=Axes3D(fig)#创建创建3D图形对象图形对象zs=2015,2016,2017,2018for

15、 z in zs:#生成数据并绘制生成数据并绘制3D图图 xs=np.arange(1,13)ys=1000*np.random.rand(12)color=plt.cm.Set2(np.random.choice(np.arange(plt.cm.Set2.N)ax.bar(xs,ys,zs=z,zdir=y,color=color,alpha=0.8)3D柱状图#设置设置x轴和轴和y轴的坐标刻度轴的坐标刻度ax.xaxis.set_major_locator(mpl.ticker.FixedLocator(xs)ax.yaxis.set_major_locator(mpl.ticker.FixedLocator(ys)ax.set_xlabel(Month)ax.set_ylabel(Year)3D柱状图小结小结1、掌握基本的、掌握基本的3D数据绘图步骤。数据绘图步骤。2、掌掌握握3D散散点点图图、线线图图、线线框框图图和和3D柱柱状状图图的的基基本本绘图方法及应用场景。绘图方法及应用场景。谢谢大家

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com