数据可视化 课件 第3章 Matplotlib的进阶使用_第1页
数据可视化 课件 第3章 Matplotlib的进阶使用_第2页
数据可视化 课件 第3章 Matplotlib的进阶使用_第3页
数据可视化 课件 第3章 Matplotlib的进阶使用_第4页
数据可视化 课件 第3章 Matplotlib的进阶使用_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

1数据可视化第一章Matplotlib的基本使用第二章Matplotlib的进阶使用第三章…第四章目录Contents…第五章绪论2第三章Matplotlib的进阶使用进阶设置进阶图形1234引言扩充功能3引言1.41引言上一章讲述了使用Matplotlib绘制基本图形的方法,帮助用户掌握了一些常见图形的函数使用以及其参数含义。但是,这样的简单图形显然不能满足用户更复杂的实际需求。本章重点讲解如何对Matplotlib图形进行更复杂的设置,以及如何绘制更复杂和完善的图形,使用户能够更美观、更全面、更灵活地展示数据,真正做到用数据讲故事。5进阶设置2.62进阶设置72进阶设置——rc参数的设置在添加标题的过程中,如果标题为中文,会存在不显示的问题82进阶设置——rc参数的设置

解决办法是添加以下两行命令92进阶设置——rc参数的设置这就涉及到了rc参数的相关问题。实际上,matplotlib使用matplotlibrc(matplotlibresourceconfigurations)配置文件来自定义各种属性,我们称之为rc配置或者rc参数。通过rc参数可以修改默认的属性,包括窗体大小、每英寸的点数、线条宽度、颜色、样式、坐标轴、坐标和网络属性、文本、字体等。102进阶设置——rc参数的设置lines:设置线条属性。包括线条颜色、宽度和标记等。patch:填充2D空间的图形对象。font:字体类别、风格、粗细和大小等。text:文本颜色等。axes:坐标轴的背景颜色、边缘颜色,刻度线的大小,刻度标签大小等。xtick、ytick:x轴和y轴刻度线大小、宽度,刻度线颜色、标签大小等。grid:网格颜色、线条设置、透明度等。legend:图例的文本大小,线框风格等。figure:画布标题大小、粗细,画布分辨率等。savefig:保存画布图像的分辨率、背景颜色等。配置文件matplotlibrc主要包括以下配置要素:112进阶设置——rc参数的设置可以通过以下代码代码查看这些参数的默认值122进阶设置——rc参数的设置还可以直接查找rc参数的源文件查看对应默认参数132进阶设置——rc参数的设置这样,就可以通过修改rc参数这种方式直接修改函数曲线的颜色、粗细等142进阶设置——rc参数的设置回归到最初解决中文显示的问题上,除了“SimHei”,还有以下字体与其对应的参数152进阶设置——坐标轴的设置在正常显示中文标题后,我们就可以开始对图形进行美化了。让我们先来学习坐标轴设置的相关操作162进阶设置——坐标轴的设置坐标轴颜色设置坐标轴颜色设置思路如下:获取坐标轴修改颜色172进阶设置——坐标轴的设置当前的图表和子图可以使用plt.gcf()和plt.gca()获得,分别代表GetCurrentFigure和GetCurrentAxes。实际上,在pyplot模块中,许多函数都是对当前Figure或Axes对象进行操作的。坐标轴颜色设置182进阶设置——坐标轴的设置既然可以改变颜色,也可以通过设置坐标轴颜色为白色,以达到“隐藏”坐标轴的目的。坐标轴颜色设置192进阶设置——坐标轴的设置虽然设置成“white”和“none”看起来都可以达到“隐藏”坐标轴的目的。但二者也存在一定区别。当figure颜色为黑色时,设置成“white”还是会显示出来的,而设置成“none”还是不会显示出来。坐标轴颜色设置202进阶设置——坐标轴的设置坐标轴刻度的设置若只想显示一定范围内的图形,可以通过xlim和ylim两个函数来设置坐标的显示范围,接收的参数为一个元组。212进阶设置——坐标轴的设置如果想修改坐标轴刻度的值,可以通过xticks()和yticks()两个函数来设置,接受的参数为一个列表。坐标轴刻度的设置222进阶设置——坐标轴的设置我们也可以将坐标轴刻度用文字来表示,只需要再加入一个列表即可。此时会在第一个列表中进行坐标轴刻度划分,在第二个列表中找到所需要表达的文字坐标轴刻度的设置232进阶设置——坐标轴的设置坐标轴位置的设置数学中的x-y直角坐标系,x轴与y轴相交于(0,0)点。在Matplotlib,也可以调整坐标轴的位置,绘制出x-y直角坐标系下的图形。实现思路如下:(1)获取坐标轴。(2)设置右边和上方坐标轴颜色为none。(3)将左边和下方的坐标轴调至中心处。242进阶设置——坐标轴的设置坐标轴位置的设置还可以通过设置左边和下方的坐标轴到0点达到同样的效果252进阶设置——坐标轴的设置坐标轴标签的设置如果想要给x轴或y轴添加名称,则需要使用函数xlabel()和ylabel()。同样可以通过fontsize调整字体大小,通过color设置字体颜色等262进阶设置——图例的设置在绘图区域中可能会出现多个图形,如果没有图例进行区分,是很难识别出这些图形的主要内容的。因此,对于有两条及两条以上曲线的图形,需要添加图例进行区分。在Matplotlib中,通过pyplot.legend()创建图例,但是需要在绘图过程中加上labels名称,如plt.plot(x,y,labels='1')。272进阶设置——图例的设置pyplot.legend()常见参数如下:loc:int或str。可选参数见表3.1,可使用左侧的字符串或者右侧的整型代号。默认为'best',同时,'best'意味会自行调节位置以不遮挡内容,运行速度相对要慢。若使用了bbox_to_anchor,该项无效。fontsize:设置图例字体大小。frameon:设置图例的边框,默认为True,设置为False时不显示。title:图例的标题。shadow:是否为图例边框添加阴影。markerfirst:True表示图例标签在句柄右侧,false反之。markerscale:图例标记为原图标记中的多少倍大小。fancybox:是否将图例框的边角设为圆形。framealpha:控制图例框的透明度。bbox_to_anchor:(横向看右,纵向看下),如果要自定义图例位置或者将图例画在坐标外边,使用到的参数一般配合着ax.get_position()等参数使用。282进阶设置——参考线/区域的设置我们有时需要在图形中添加参考线或参考区域,以对数据进行比较。例如,在对营业收入进行分析时,会用到帕累托分析,找出营业收入超过80%的点。292进阶设置——参考线/区域的设置参考线的设置在Matplotlib中,通过pyplot.axhline()绘制平行于x轴的水平参考线,通过pyplot.axvline()绘制平行于y轴的垂直参考线。302进阶设置——参考线/区域的设置y:水平参考线的出发点。xmin&xmax:x最小(最大)刻度所占百分比,取值范围为[0,1]。如:设置xmin=0.5,即为参考线起始处到左坐标轴的距离占50%。缺省时绘制平行于整个坐标轴的参考线。c:参考线的颜色。ls:参考线的线条风格。lw:参考线的宽度。其中axhline()常见参数如下:参考线的设置312进阶设置——参考线/区域的设置axvline()和axhline()使用方法基本一致,唯一的区别在于axhline()绘制的是平行于x轴的参考线,axvline()绘制的是平行于y轴的参考线,因此在参数上由axhline()中的y,xmin和xmax对应变成axvline()中的x,ymin和ymax。参考线的设置322进阶设置——参考线/区域的设置参考线可以满足一定的需求,但如果需要对整个区域进行标记的话,用参考线是不够的,这时就要使用到参考区域。Matplotlib通过pyplot.axhspan()创建平行于x轴的参考区域;通过pyplot.axvspan()创建平行于y轴的参考区域。参考区域的设置332进阶设置——参考线/区域的设置其中,axhspan()常见参数如下:xmin&xmax:区域的左、右坐标对于整个图表的位置,范围在0到1之间。缺省时xmin取0,xmax取1。ymin&ymax:区域的上、下坐标对于整个图表的位置。同样可以通过alpha参数调整透明度,通过facecolor调整区域颜色,通过edgecolor调整边框颜色等参考区域的设置342进阶设置——参考线/区域的设置与axhline()和axvline()类似,axvspan()和axhspan()的唯一区别在于axvspan()的ymin和ymax在缺省时分别为0和1。参考区域的设置需要注意的是,参考区域和参考线之间还是有区别的。例如,参考区域中必选参数如axhspan()中的ymin和ymax是实际的坐标轴刻度值,范围不属于[0,1]。这是我们在绘图过程中需要十分注意的。352进阶设置——注释文本的设置我们在图形展示中经常要展示一些特殊的点,并且要进行标记,这时就需要注释文本了。在Matplotlib中,注释文本有两种方式:text()为无指向型注释文本,annotate()为指向型注释文本。362进阶设置——注释文本的设置无指向型注释文本无指向型注释文本,文如其名,是指没有指向型的注释。它通过pyplot.text()创建。基本思想是:1.定位到需要注释的位置2.添加注释。372进阶设置——注释文本的设置无指向型注释文本无指向型注释文本常用参数如下:x,y:注释开始的位置坐标。string:表示说明文字。fontsize:表示字体大小。verticalalignment:垂直对齐方式,可选参数有:[‘center’,‘top’,‘bottom’,‘baseline’]。horizontalalignment:水平对齐方式,可选参数有:[‘center’,‘right’,‘left’]。wight:字体的粗细,可选参数有:[‘normal’,‘bold’,‘bolder’,‘lighter’]。bbox:给字体添加框。以字典的形式,可以修改框内的颜色、字体颜色、边框颜色等。382进阶设置——注释文本的设置指向型注释文本无指向型注释文本对于只有一个图形的说明性较好,若图形中包含两个及以上的函数曲线,那么指向型注释文本的效果会更好。在matplotlib中通过pyplot.annotate()创建指向型注释文本。实现思路是:1.定位被注释的坐标点2.定位注释文本的坐标点3.添加注释。392进阶设置——注释文本的设置指向型注释文本指向型注释文本常用参数如下:s:为注释文本内容xy:为被注释的坐标点xytext:为注释文字的坐标位置arrowprops:设置指向箭头的参数,包含:arrowstyle:设置箭头的样式,可选参数:['->','|-|','-|>','simple','fancy']等;connectionstyle:设置箭头的形状可选参数['arc3','arc','angle','angle3'];color:设置箭头颜色。headlength:箭头的长度。headwidth:箭头的宽度。width:箭尾的宽度。若指定了arrowstyle,则不能通过这三个参数个性化设置箭头。bbox:为注释文本添加边框。40进阶图形3.413进阶图形423进阶图形——复杂柱形图复杂柱形图包括很多种,本章从并列柱形图、堆积柱形图、误差棒柱形图来讲解复杂柱形图的绘制思路、流程以及代码实现。433进阶图形——复杂柱形图并列柱形图当对多个样本进行某个因素的比较时,如对多个班级某次考试的语数英三门成绩平均分进行比较时,就可以用到并列柱形图。绘制思路如下:(1)绘制第一个班级的语数英成绩柱形图;(2)间隔一定的距离绘制第二个班级的语数英成绩柱形图,以此类推;(3)补充x、y轴名称,完善图形443进阶图形——复杂柱形图堆积柱形图堆积柱形图,即将若干柱形图堆叠起来的统计图形。它也可以类似于饼图展示数据的分布。绘制思路如下:(1)绘制第一个柱形图;(2)以第一个柱形图为底绘制第二个柱形图,以此类推;(3)完善图形。453进阶图形——复杂柱形图堆积柱形图如果想要绘制能够反映数据的百分比分布的堆积柱形图,则需要先计算百分比值,再绘制图形。463进阶图形——复杂柱形图误差棒柱形图在前一章讲过了误差棒图的绘制。误差棒图实际上还可以和柱形图结合使用,需要在pyplot.bar()中补充一些参数,补充参数含义如下:xerr,yerr:分别针对水平型、垂直型误差。error_kw:设置误差记号的相关参数,例如,elinewidth设置线型粗细,ecolor设置颜色,capsize设置误差线边界横线的长度。473进阶图形——复杂条形图复杂条形图如并列条形图、堆积条形图、带误差棒的条形图,其实现过程与复杂柱形图相比没有很大的区别,基本上和柱形图与条形图的绘制流程一致,此处不再赘述。本小节主要介绍如何通过条形图达到类似甘特图的效果。483进阶图形——复杂条形图在Matplotlib中通过pyplot.broken_barh()绘制类似甘特图的间断条形图。其中,常用参数如下:xranges:(xmin,xwidth)组成的数组,其中xmin是每个起始点的坐标,xwidth是每个块的宽度。yranges:(ymin,ymax)规定某一组方块的y坐标位置,ymin为起始坐标,ymax是宽度。493进阶图形——堆叠图堆叠图主要用于显示部分对整体随时间的变化关系,它与饼图很相似,但是,堆叠图反映的是数据随着时间的变化关系。在Matplotlib中通过pyplot.stackplot()绘制堆叠图。主要参数如下:x:维度为n的一维数组;y:2维数组(维度m×n)或1维数组的序列(每维1×n)503进阶图形——子图子图是将整个画布划分成若干块,再在每一块上绘制的图形。在Matplotlib中,有两种子图:规则划分的子图与不规则划分的子图。在正式介绍子图之前,先解释一个概念。以subplot()为例,subplot(n1,n2,n3)表示将整个画布划分成n1×n2的矩阵,该plot为第n3个图。subplot(n1,n2,n3)也可以写作subplot(n1n2n3),中间省略逗号也是可以运行成功的,但不提倡这么做。513进阶图形——子图规则划分的子图通过pyplot.subplot()创建几何形状相同的子图。不过需要记得在调用pyplot.subplot()前要先调用pyplot.figure()获取画布,才能进行后续操作。523进阶图形——子图还可以在整个画布中显示奇数个图形规则划分的子图533进阶图形——子图不规则划分的子图在上一节中,即使绘制的是奇数个图形,但还是规则划分的。如果想要将画布不规则划分,需要使用函数pyplot.subplot2grid()。首先对subplot2grid()参数的含义进行解释。以subplot2grid((3,3),(1,0),colspan=2,rowspan=2)为例,该命令表示将整个画布看作3×3的矩阵,该图形起始于(1,0),占2列2行。其中参数colspan和rowspan的缺省值为1。543进阶图形——等高线图等高线图经常用在绘制梯度下降算法的相关示意图中。在Matplotlib中通过pyplot.contour()绘制等高线。绘制等高线最基本、最重要的三个参数是长、宽、高,对应x、y和z。553进阶图形——等高线图如果需要的是填充等高线,使用命令pyplot.contourf()563进阶图形——热力图热力图,也可以称作热图、密度表等,主要用于展示数据的分布情况。标准的热力图由三个维度的数据组成,两组连续的数据作为x轴和y轴,第三组数据通过颜色深浅程度反映。热力图在机器学习中的使用频率较高。Matplotlib中绘制热力图需要使用到两个函数—pyplot.imshow()和pyplot.colorbar()573进阶图形——热力图其中,imshow()的cmap用来修改色系,有以下参数:hot:从黑色平滑过度到红色、橙色和黄色的背景色,然后到白色。cool:包含青绿色和品红色的阴影色。从青绿色平滑变化到品红色。gray:返回线性灰度色图。

温馨提示

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

评论

0/150

提交评论