模块五 Matplotlib实现数据可视化电子课件Python数据分析与应用 .pptx
《模块五 Matplotlib实现数据可视化电子课件Python数据分析与应用 .pptx》由会员分享,可在线阅读,更多相关《模块五 Matplotlib实现数据可视化电子课件Python数据分析与应用 .pptx(121页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、模块五 Matplotlib 实现数据可视化电子课件Python 数据分析与应用 模块5Matplotlib 实现数据可视化模块5Matplotlib 实现数据可视化 Matplotlib 首次发表于2007 年,由于在函数设计上参考了MA TL AB,其名字以“Mat”开头,中间的“plot”表示绘图这一作用,而结尾的“lib”则表示它是一个集合。近年来,Matplotlib 在开源社区的推动下,在科学计算领域得到了广泛的应用,成为了Py thon 中应用非常广的绘图工具包之一。Matplotlib 中应用最广的是matplotlib.pyplot 模块。本模块将讲述基础统计图形的绘制方法。
2、目 录C O N T E N T01 0203Matplotlib 基础案例:人口数据分析Matplotlib 数据可视化Matplotliblib 基础5.1 Matplotlib 库是专门用于开发图表(包括3D 图表)的,近年来被广泛应用于科技领域。Matplotlib 的主要任务之一就是提供一套表示和操作图形对象以及它的内部对象的函数和工具。pyplot 是Matplotlib 的内部模块,该模块提供操作Matplotlib 库的经典Py thon 编程接口,有着自己的命名空间,需要单独导入NumPy 库。matplotlib.pyplot(以下简称pyplot)是一个命令风格函数的集合
3、,使Matplotlib 的机制更像MA TL AB。每个绘图函数都可对图形进行一些更改,如创建图形,在图形中创建绘图区域,在绘图区域绘制一些线条,使用标签装饰绘图等。在pyplot 中,各种状态跨函数调用保存,以便跟踪诸如当前图形和绘图区域之类的东西,并且绘图函数始终指向当前轴域。5.1 Matplotlib 基础5.1.1 pyplot 基础语法5.1 Matplotlib 基础5.1.1 pyplot 基础语法pyplot 基本绘图流程主要分为3 个部分,如图5-1 所示。图5-1pyplot 基本绘图流程5.1 Matplotlib 基础5.1.1 pyplot 基础语法1.创建画布与
4、创建子图 第一部分的主要作用是构建出一张空白的画布,并可以选择是否将整个画布划分为多个部分,方便在同一幅图上绘制多个图形。当只需要绘制一幅简单的图形时,这部分可以省略。pyplot 中创建画布及创建并选中子图的常用函数如表5-1 所示。5.1 Matplotlib 基础5.1.1 pyplot 基础语法2.添加画布内容 第二部分是绘图的主题部分。其中的添加标题、添加坐标轴名称、绘制图形等步骤是并列的,没有先后顺序,可以先绘制图形,也可以先添加各类标签。但是添加图例一定要在绘制图形之后。pyplot 中添加各类标签和图例的常用函数如表5-2 所示。5.1 Matplotlib 基础5.1.1 p
5、yplot 基础语法3.保存与显示图形 第三部分主要用于保存与显示图形,这部分内容的常用函数只有两个,且参数很少,如表5-3 所示。5.1 Matplotlib 基础5.1.1 pyplot 基础语法 最简单的绘图可以省略第一部分,而后直接在默认的画布上进行图形绘制,如下例所示。首先要导入pyplot 模块,并将其命名为plt。In 1:impor tmatplotlib.pyplotasplt 导入这个模块时,plt 对象及其图像处理功能已被实例化且可以使用。因此,把数据传给plt 函数,然后直接使用即可。In 2:plt.plot(1,2,3,4)Out 2:结果显示生成了一个Line2D
6、 对象。该对象为一条直线,数据点用蓝线串在一起,它表示图表中各数据点的线性延伸趋势,如图5-2 所示。5.1 Matplotlib 基础5.1.1 pyplot 基础语法图5-2 简单绘图示例 如果只是将一个数字列表或数组传给plt.plot 函数,Matplotlib 就会假定所传入的是图表的y 值,于是将其与一个序列的x 值对应起来,x 的取值依次为0、1、2、3。5.1 Matplotlib 基础5.1.1 pyplot 基础语法 通常,图形表示的是一对对的(x,y)。因此,如果要正确定义图表,就必须定义两个数组,其中第一个数组为x 轴的各个值,第二个数组为y 轴的值。一个简单的不含子图
7、绘制的标准绘图流程如下例所示,图形如图5-3 所示。In3:import matplotlib.pyplot as pltimport numpy as npx=np.arange(0,np.pi*2,0.01)y1=np.sin(x)y2=np.cos(x)plt.title(sin(x)&cos(x)#添加标题plt.xlabel(x)#添加x轴名称plt.ylabel(y)#添加y轴名称plt.xlim(0,np.pi*2)#规定x轴范围5.1 Matplotlib 基础plt.ylim(-1,1)#规定y 轴范围plt.xticks(0,1,2,3,4,5,6)#规定x 轴刻度plt.
8、y ticks(-1,-1/2,0,1/2,1)#规定y 轴刻度plt.plot(x,y1,x,y2)plt.legend($sin(x)$,$cos(x)$)plt.sav efig(f:/sin.png)5.1.1 pyplot 基础语法5.1 Matplotlib 基础此外,plot 函数还可以接收第三个参数,用于描述数据点在图标中的显示方式,如图5-4 所示。图5-3 标准绘图示例5.1.1 pyplot 基础语法5.1 Matplotlib 基础In4:import matplotlib.pyplot as pltimport numpy as npx=np.arange(0,np.
9、pi*2,0.01)y1=np.sin(x)y2=np.cos(x)plt.title(sin(x)&cos(x)#添加标题plt.xlabel(x)#添加x轴名称plt.ylabel(y)#添加y轴名称plt.xlim(0,np.pi*2)#规定x轴范围plt.ylim(-1,1)#规定y轴范围plt.xticks(0,1,2,3,4,5,6)#规定x轴刻度plt.yticks(-1,-0.5,0,0.5,1)#规定y轴刻度plt.plot(x,y1,x,y2,.)plt.legend($sin(x)$,$cos(x)$)plt.savefig(f:/sin1.png)5.1.1 pyplo
10、t 基础语法5.1 Matplotlib 基础5.1.1 pyplot 基础语法图5-4 不同线形示例Matplotlib 还可以在同一图形中绘制出多种不同的趋势图,如图5-5 所示。5.1 Matplotlib 基础5.1.1 pyplot 基础语法In5:import matplotlib.pyplot as pltimport numpy as npx=np.arange(0,np.pi*2,0.01)y1=np.sin(x)y2=np.sin(x-np.pi/2)y3=np.sin(x+np.pi/2)plt.xlabel(x)plt.ylabel(y)plt.xlim(0,np.pi
11、*2)plt.ylim(-1,1)plt.xticks(0,1,2,3,4,5,6)plt.yticks(-1,-0.5,0,0.5,1)plt.plot(x,y1,b-,x,y2,r-,x,y3,g)plt.savefig(f:/sin2.png)5.1 Matplotlib 基础5.1.1 pyplot 基础语法图5-5 不同趋势示例 到目前为止,我们所用的pyplot 命令都是绘制单个图形的。pyplot 命令也可以同时绘制多个图形,而在每个图形中,又可以绘制几个不同的子图。subplot()函数不仅可以将图形分为不同的绘图区域,还能激活特定子图,以便用命令控制它。subplot()函数
12、用参数设置分区模式和当前子图。subplot()函数的参数由三个整数组成:第一个数字决定图形沿垂直方向被分为几部分,第二个数字决定图形沿水平方向被分为几部分,第三个数字设定可以直接用命令控制的子图。5.1 Matplotlib 基础plt.plot(t,y1,b-.)plt.subplot(212)5.1.1 pyplot 基础语法 下面绘制两种三角函数(正弦和余弦函数)趋势图。最佳方式是把画布分为上下两个向水平方向延伸的子图,如图5-6 所示。因此,作为参数传入的两个数字应分别为211 和212。In6:import matplotlib.pyplot as pltimport numpy
13、as npt=np.arange(0,5,0.1)y1=np.sin(2*np.pi*t)y2=np.cos(2*np.pi*t)plt.subplot(211)plt.xlabel(x)plt.ylabel(y)plt.xticks(0,1,2,3,4,5)plt.yticks(-1,-0.5,0,0.5,1)plt.xlabel(x)plt.ylabel(y)plt.xticks(0,1,2,3,4,5,6)plt.yticks(-1,-0.5,0,0.5,1)plt.plot(t,y2,r-)plt.savefig(f:/5-6.png)5.1 Matplotlib 基础5.1.1 py
14、plot 基础语法图5-6 分为上下两个子图还可以把图形分为左右两个子图。这时,subplot()函数的参数为121和122,如图5-7 所示。图5-7 分为左右两个子图5.1 Matplotlib 基础5.1.1 pyplot 基础语法In7:import matplotlib.pyplot as pltimport numpy as npt=np.arange(0,1,0.05)y1=np.sin(2*np.pi*t)y2=np.cos(2*np.pi*t)plt.subplot(121)plt.xlabel(x)plt.ylabel(y)plt.xticks(0,0.2,0.4,0.6,
15、0.8,1)plt.yticks(-1,-0.5,0,0.5,1)plt.plot(t,y1,b-.)plt.subplot(122)plt.xlabel(x)plt.ylabel(y)plt.xticks(0,0.2,0.4,0.6,0.8,1)plt.yticks(-1,-0.5,0,0.5,1)plt.plot(t,y2,r-)plt.savefig(f:/5-7.png)5.1 Matplotlib 基础5.1.2 设置图形属性1.添加文本根据前例,标题的添加用title()函数即可,xlabel()和ylabel()函数专门用于添加轴标签,把要显示的文本以字符串形式传给这两个函数作为
16、参数。还可以用关键字参数修改属性。例如,可以修改标题的字体,使用更大的字号;指定轴标签的颜色为灰色,从而反衬出图形的标题,如图5-8 所示。图5-8 设置关键字参数5.1 Matplotlib 基础5.1.2 设置图形属性In8:import matplotlib.pyplot as pltimport numpy as npx=np.arange(0,np.pi*2,0.01)y1=np.sin(x)y2=np.cos(x)plt.title(sin(x)&cos(x),fontsize=20,fontname=Times New Roman)plt.xlabel(x,color=gray)
17、plt.ylabel(y,color=gray)plt.xlim(0,np.pi*2)plt.ylim(-1,1)plt.xticks(0,1,2,3,4,5,6)plt.yticks(-1,-0.5,0,0.5,1)plt.plot(x,y1,x,y2)plt.legend($sin(x)$,$cos(x)$)plt.savefig(f:/5-8.png)5.1 Matplotlib 基础5.1.2 设置图形属性Matplotlib 的功能不限于此,pyplot 允许在图形任意位置添加文本。这个功能由t ext()函数来实现。其语法如下。text(x,y,s,fontdict=None,*k
18、wargs)其中,参数x、y 为文本在图形中位置的坐标;s 为要添加的字符串;font dict(可选)为文本要使用的字体;最后,还可以使用关键字参数。t ext()函数的前两个参数为标签在图形中的位置坐标,所以使用数据点的坐标作为标签的坐标,但每个标签的值较相应数据点的值有一点偏差,如图5-9 所示。5.1 Matplotlib 基础5.1.2 设置图形属性In9:import matplotlib.pyplot as pltimport numpy as npx=np.arange(0,np.pi*2,0.01)y=np.sin(x)plt.title(sin(x)plt.xlabel(x
19、)plt.ylabel(y)plt.xticks(0,1,2,3,4,5,6)plt.yticks(-1,-0.5,0,0.5,1)plt.text(0.1,0,(0,0)#设置第一个点的标签plt.text(1.2,0.8,($pi/2,1)$)#设置第二个点的标签plt.text(3.14,0.1,($pi,0)$)#设置第三个点的标签plt.text(4.1,-0.8,($3pi/2,-1)$)#设置第四个点的标签plt.text(5.5,0.1,($2pi,0)$)#设置第五个点的标签plt.plot(x,y)5.1 Matplotlib 基础5.1.2 设置图形属性图5-9 添加标签
20、示例Matplotlib 是专门为科学圈开发的图形库,它整合了LaT eX 表达式,支持在图形中插入数学表达式。将表达式内容置于两个$符号之间,可在文本中添加LaT eX表达式。解释器会将该符号之间的文本识别成LaT eX 表达式,把它们转换为数学表达式、公式、数学符号或希腊字母等,然后在图形中显示出来。还可以使用关键字参数进一步丰富图形中的文本。例如,添加描述图形各数据点趋势的公式,并为公式添加一个彩色边框,如图5-10 所示。5.1 Matplotlib 基础5.1.2 设置图形属性In10:import matplotlib.pyplot as pltimport numpy as np
21、x=np.arange(0,np.pi*2,0.01)y=np.sin(x)plt.title(sin(x),fontsize=20,fontname=Times New Roman)plt.xlabel(x)plt.ylabel(y)plt.xticks(0,1,2,3,4,5,6)plt.yticks(-1,-0.5,0,0.5,1)plt.text(4.5,0.6,$y=sin(x)$,fontsize=20,bbox=facecolor:yellow,alpha:0.2)plt.plot(x,y)5.1 Matplotlib 基础5.1.2 设置图形属性图5-10 在图形中添加数学公式
22、2.添加网格图形中可以添加的另一个元素是网格。添加网格能更好地理解图形中每个数据点的位置,因此很有必要。在图形中添加网格很简单,直接在代码中加入grid()函数,传入参数T rue 即可,如图5-11 所示。5.1 Matplotlib 基础5.1.2 设置图形属性In11:import matplotlib.pyplot as pltimport numpy as npx=np.arange(0,np.pi*2,0.01)y=np.sin(x)plt.title(sin(x),fontsize=20,fontname=Times New Roman)plt.xlabel(x)plt.ylab
23、el(y)plt.xticks(0,1,2,3,4,5,6)plt.yticks(-1,-0.5,0,0.5,1)plt.text(4.5,0.6,$y=sin(x)$,fontsize=20,bbox=facecolor:yellow,alpha:0.2)plt.grid(True)plt.plot(x,y)5.1 Matplotlib 基础5.1.2 设置图形属性图5-11 在图形中添加网格5.1 Matplotlib 基础5.1.2 设置图形属性3.添加图例 每一个图形都应该有的元素是图例。pyplot 专门提供了legend()函数,用于操作该类对象,如图5-12 和图5-13 所示。
24、In12:import matplotlib.pyplot as pltimport numpy as npx=np.arange(0,np.pi*2,0.01)y1=np.sin(x)y2=np.cos(x)plt.title(sin(x)&cos(x)plt.xlabel(x)plt.ylabel(y)plt.xlim(0,np.pi*2)plt.ylim(-1,1)plt.xticks(0,1,2,3,4,5,6)plt.yticks(-1,-0.5,0,0.5,1)plt.plot(x,y1,x,y2)plt.legend($sin(x)$,$cos(x)$,loc=0)5.1 Mat
25、plotlib 基础5.1.2 设置图形属性图5-12 图例在最佳位置 图5-13 图例在上方居中位置5.1 Matplotlib 基础5.1.2 设置图形属性 图例的位置由loc 关键字控制,其取值范围为010。每个数字代表图形中的一处位置,如表5-4 所示。Matplotlib 数 据 可视化5.25.2Matplotlib 数据可视化5.2.1 散点图 散点图(scatt erdiagram)又称为散点分布图,是以一个特征为横坐标,以另一个特征为纵坐标,利用坐标点(散点)的分布形态反映特征间的统计关系的一种图形。值由点在图表中的位置表示,类别由图表中的不同标记表示,通常用于比较跨类别的数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模块五 Matplotlib实现数据可视化电子课件Python数据分析与应用 模块 Matplotlib 实现 数据 可视化 电子 课件 Python 分析 应用
限制150内