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