《数据可视化技术》课件-第9章 Matplotlib可视化_第1页
《数据可视化技术》课件-第9章 Matplotlib可视化_第2页
《数据可视化技术》课件-第9章 Matplotlib可视化_第3页
《数据可视化技术》课件-第9章 Matplotlib可视化_第4页
《数据可视化技术》课件-第9章 Matplotlib可视化_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第9章Matplotlib可视化学习目标

Matplotlib基础

Matplotlib常见图表

Matplotlib的3D图形和多子图22025/2/199.1.1Numpy基础功能1、文件的输入和输出2、创建数组3、查看变量属性4、复制、排序和维度变化5、添加、删除元素32025/2/191文件的输入和输出文件的输入和输出功能1、np.loadtxt(‘file.txt’)读取file.txt文件2、np.loadtxt(‘file.txt’,delimiter=‘\t’,dtype=str,encoding=‘utf-8’)读取中文文件,delimiter表示字符串的分割符是'\t',dtype=str表示输入文本的类型是字符串,encoding='utf-8'表示中文编码是utf-8。3、np.genfromtxt(‘file.csv’,delimiter=‘,’,dtype=str,encoding=‘utf-8‘)读取file.csv文件,分隔符是',',dtype=str表示输入文本的类型是字符串,encoding='utf-8'表示中文编码是utf-8。42025/2/191文件的输入和输出4、np.savetxt(‘file.txt’,arr,delimiter=‘,’)将arr数组存储为file.txt文件。5、np.savetxt(‘file.csv’,arr,delimiter=‘,‘)将arr数组存储为file.csv文件,其中字符串的分隔符为“,”。6、Numpy支持npy文件,npy文件与Matlab的mat文件相似,是Numpy支持的数据文件,load(‘file.npy’)载入file.npy文件。7、save(file,arr,allow_pickle,fix_imports)将arr数组保存为file.npy文件,allow_pickle表示采用序列化的存储方式。52025/2/192创建数组1、np.array()创建ndarray数组。np.array([1,2,3])可以创建一维数组,np.array([(1,2,3),(4,5,6)])创建二维数组,np.array([1,2,3,4,5,6],ndmin=3)创建一个三维数组。2、np.zeros()创建指定大小的数组,数组中的所有元素为0。order=’C’表示用于C语言的行数组,order=’F’表示用于Fortran语言的列数组。np.zeros(3)创建一个含有3个0元素的数组。3、np.ones()用于创建数组元素为1的指定形状的数组。np.ones((3,4))创建一个3行4列的数组。62025/2/192创建数组4、np.linspace(start,stop,num)用于创建一个一维数组。数组是一个等差数列序列,start是序列的起始值,stop是序列的终止值,num是生成的等步长的样本数量。5、np.arange(start,stop,step,dtype)从数值范围创建数组,其中start是起始值,默认为0,stop为终止值(不包含),step是步长,默认为1,dtype返回ndarray的数据类型。6、np.eye(n,m,k,dtype,order)创建一个2维的对角矩阵,n是对角矩阵的行,m是对角矩阵的列,m默认与n相等,k是对角线的索引,np.eye(3,3)创建一个3行3列的对角矩阵。对角线的起始下标是1,而不是标准对角矩阵的0。72025/2/192创建数组7、np.full(shape,fill_value,dtype,order)创建一个给定行、列的填充矩阵,填充值是fill_value,np.full((2,3),8)产生一个2行3列的数组,填充值是8。8、np.random.rand(d0,d1,...,dn)创建一个N维的随机数组,d0是第一个维度,d1是第二个维度,dn是第n个维度,随机数是[0,1)均匀分布的抽样。np.random.rand(4,5)产生4行5列随机数组,数组元素值是[0,1)均匀分布的抽样。9、numpy.random.randint(low,high,size,dtype)创建离散均匀分布的整数,整数值大于等于low,小于high。np.random.randint(5,size=(2,3))产生一个2行3列的随机整数数组,数组元素值在0~4之间。82025/2/193查看变量属性1、ndarray.size返回数组的元素个数,np.array([1,2,3,4,5,6]),有6个元素。2、ndarray.shape返回数组的形状,即ndarray的行、列数。3、ndarray.dtype返回ndarray数组元素的类型。4、ndarray.astype(dtype)将数组的元素类型转换为dtype类型,x=x.astype(float)将x由int32类型变量转化为float类型变量。5、ndarray.tolist()将数组转换为Python列表,x=x.tolist()将x由ndarray数组转化为Python的列表变量。92025/2/194复制、排序和维度变化1、np.copy(ndarray)复制ndarray数组。2、ndarray.view(dtype)使用不同的数据类型构造数组的内存视图。3、arr.sort(axis)对arr的特定轴axis进行排序。4、arr.flatten()将二维数组arr转换为一维数组。5、arr.T表示对数组arr进行转置。6、arr.reshape(row,col)将数组arr进行变形。7、ndarray.resize(new_shape,refcheck=True)将数组重新调整行和列。102025/2/195添加、删除元素1、np.append(arr,values)在arr数组的尾部添加values。2、np.insert(arr,obj,values,axis=None)在数组指定的下标处插入新的元素,如x=np.array([1,2,3]),np.insert(x,2,4)后,x返回值为array([1,2,4,3]),即4被插入到x变量索引为2的位置。3、np.delete(arr,obj,axis)表示删除元素,如x=array([[1,2],[4,5]]),np.delete(x,1,axis=0)删除行索引为1的行,x的返回值为array([[1,2]]),np.delete(x,1,axis=1)删除列索引为1的列,x的返回值为array([[1],[4]])。112025/2/199.1.2Numpy高级功能1、变量合并、分割2、索引、切片和子集3、标量运算4、向量运算5、统计122025/2/191变量合并、分割1、np.concatenate((a1,a2,...),axis,out)对a1、a2多个数组进行合并,其中合并的方向可以是按照行进行合并,或者按照列进行合并。2、np.split(ary,indices_or_sections,axis)将一个数组分割为多个子数组,其中ary是要分割的数组,axis=0按行分割,axis=1表示按照列分割。indices_or_sections为N时,表示将数组分割为N部分。indices_or_sections为数组时,表示按索引分割,np.split(x,[1,3],axis=1)表示在第一列、第三列分割数组x。132025/2/192索引、切片和子集1、Numpy支持的数组的索引下标从0开始。2、切片操作是对数组的一段区间的操作,切片与变量维度一致,区间变量之间使用“,”分割。切片区间的表达式是“start:stop”,其中的start表示切片的开始位置,stop表示切片的结束位置,不包括stop结束位置,如果x是一维数组,则x[:2]返回一维数组的0、1元素。3、子集筛选也是Numpy库的提供的一项功能,通过布尔条件可以对数组进行筛选,筛选后的返回值是与原数组相同维度的布尔数组,如x=np.array([1,2,3,4]),则x<3的返回值为array([True,True,False,False]),x[x<3]返回小于3的元素,返回值为array([1,2])。142025/2/193标量运算1、Numpy在进行标量运算时,向量与标量的维度不同,因此首先需要利用广播机制(Broadcast)对不同形状(shape)的数组转化为相同的维度,然后再进行数值计算。如x=np.array([[1,2],[3,4]]),x+1调用广播机制,将1转化为np.array([[1,1],[1,1]]),然后与x相加,运算返回值为array([[2,3],[4,5]])。2、np.add(arr,value)方法、np.subtract(arr,value)方法、np.multiply(arr,value)和np.divide(arr,value)都支持广播机制152025/2/194向量运算1、np.add(arr1,arr2)2、np.subtract(arr1,arr2)3、np.multiply(arr1,arr2)4、np.divide(arr1,arr2)5、np.power(arr1,arr2)向量求幂6、np.sqrt(arr)求平方根7、np.sin(arr)求sine函数值8、np.log(arr)求对数值162025/2/195统计1、np.mean(x,axis=0)2、np.sum(x,axis)求和函数3、np.min(x,axis)求最小值4、np.max(x,axis)求最大值5、np.var(x,axis)求方差6、np.std(x,axis)求标准差172025/2/199.1.3Matplotlib结构182025/2/191.Pyplot和Pylab2.MatplotlibFronted3.Backends4.Matplotlib支持的图表Matplotlib支持的图表192025/2/199.2Matplotlib常见图表202025/2/191、柱状图2、plt.rcParams设置中文环境9.2Matplotlib常见图表212025/2/19堆积柱状图

设置Bar函数的bottom参数9.2Matplotlib常见图表222025/2/19

分组柱状图

设置Bar函数的x轴位置,防止男性数据和女性数据的重叠9.2Matplotlib常见图表232025/2/19极坐标柱状图plt.subplot(projection=‘polar’)9.2Matplotlib常见图表242025/2/19误差柱状图

设置Bar函数的yerr参数9.2Matplotlib常见图表252025/2/19

条形图Barh()函数9.2Matplotlib常见图表262025/2/19饼图pie函数9.2Matplotlib常见图表272025/2/19嵌套饼图

两次调用pie()函数9.2Matplotlib常见图表282025/2/19折线图plot()9.2Matplotlib常见图表292025/2/19堆积折线图stackplot()9.2.1Matplotlib常见图表302025/2/19

散点图9.2.2高级绘图312025/2/19直方图hist()函数,bins参数表示直方图间隔的数量9.2.2高级绘图322025/2/19棉棒图stem()9.2.2高级绘图332025/2/19

箱形图boxplot()9.2.2高级绘图342025/2/19

误差棒图errorbar()9.2.2高级绘图352025/2/19

阶梯图step()9.2.2高级绘图362025/2/19

六边形分箱图hexbin()9.2.2高级绘图372025/2/19

小提琴图violinplot()9.2.3图形的完善382025/2/19

legend函数

title函数9.2.3图形的完善392025/2/19matplotlib.pyplot.plot(*args,scalex=True,scaley=True,data=None,**kwargs)*args表示列表参数,**kwargs表示字典参数9.2.3图形的完善402025/2/19text()函数在图中增加文字说明9.2.3图形的完善412025/2/19annotate()在图表中添加标注9.2.3图形的完善422025/2/19

table()在图形中添加表格9.3Matplotlib的3D图形和多子图432025/2/193D图形通常使用的坐标系柱面坐标系球面坐标系9.3.1基础3D图形442025/2/19根据参数方程绘制三维螺旋线9.3.1基础3D图形452025/2/19空间散点图主要绘制离散数据,通过设置不同三点的形状、颜色、尺寸可以增加展示数据的维度。9.3.1基础3D图形空间网格图可以展示三维空间曲面图形,plot_wireframe(X,Y,Z)函数的X参数是二维向量,Y也是二维向量,Z是曲面的高度。生成二维向量,通常需要使用meshgrid将一维向量转变为二维向量。

462025/2/19文字事件处理的根本在于事件捕获。要实现事件的捕获,为其建立一个绑定的事件处理函数是一个简单而方便的方法。用于绑定的方法如下:9.3.2高级3D图形472025/2/19根据以下空间曲面方程,使用plot_surface(X,Y,Z)绘制空间曲面生成X、Y二维数组,通过np.sin(np.sqrt(x**2,y**2))绘制曲面9.3.2高级3D图形48

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论