1、第十二章项目实战:数据可视化12.1 Matplotlib简介12.2 Artist模块介绍12.3 Pandas绘图12.4 词云图12.1 Matplotlib简介 第十二章项目实战:数据可视化概述Matplotlib是基于Python语言的开源项目,旨在为Python提供一个数据绘图包。它提供了一整套和matlab类似的命令API,适合交互式地进行制图。并且可以方便地将其作为绘图控件,嵌入GUI应用程序中。它的文档相当完备,并且Gallery页(https:/matplotlib.org/gallery.html)中有上百幅缩略图,打开之后都有源程序。因此如果你需要绘制某种类型的图,只需
2、要在这个页面中浏览.选择图像.打开.复制.粘贴一下,基本上都能搞定。本节作为matplotlib的入门,主要介绍 matplotlib绘图的一些基本概念和基本操作。12.1 Matplotlib简介 第十二章项目实战:数据可视化Pyplot模块介绍俗话说的好“熟读唐诗三百首,不会作诗也会吟”,模仿是最好的老师,编写程序也不例外。这里,我们首先通过matplotlib自带的gallery.html 页面中的案例了解绘图程序的基本架构,然后,借助归纳的框架为原型编写程序。12.1 Matplotlib简介 第十二章项目实战:数据可视化Pyplot模块介绍俗话说的好“熟读唐诗三百首,不会作诗也会吟”
3、,模仿是最好的老师,编写程序也不例外。这里,我们首先通过matplotlib自带的gallery.html 页面中的案例了解绘图程序的基本架构,然后,借助归纳的框架为原型编写程序。12.1 Matplotlib简介 第十二章项目实战:数据可视化Pyplot模块介绍然后,复制demo中的代码,至Python shell中运行,结果如下图:12.1 Matplotlib简介 第十二章项目实战:数据可视化Pyplot模块介绍分析如上demo示例代码,我们不难得出matplotlib绘图程序的基本结构,包含如下六个部分:分别导入模块 matplotlib.pyplot、numpy。定义横轴标度并以横轴
4、标度为自变量定义纵轴功能函数。通过figure()函数指定图像的长宽比。通过plot()函数绘制功能函数。通过plt的属性函数设置图像属性。通过show()函数显示图像。12.1 Matplotlib简介 第十二章项目实战:数据可视化Pyplot模块介绍案例:绘制正余弦曲线。12.1 Matplotlib简介 第十二章项目实战:数据可视化Pyplot模块介绍程序运行结构示意图:12.1 Matplotlib简介 第十二章项目实战:数据可视化plot()函数在绘制正余弦函数图时,我们调用了Matplotlib的plot()函数。该函数主要用于在figure绘制对象中绘制各种曲线,其调用形式灵活,
5、可用其参数指定其显示风格。下面的程序代码是通过调用plot函数进行曲线绘图的:12.1 Matplotlib简介 第十二章项目实战:数据可视化plot()函数由以上代码可以看出,plot()常用的参数包括坐标数据,格式参数。标准格式是plt.plot(x,y,format_string,*kwargs)。x轴数据,y轴数据,format_string控制曲线的格式字串 format_string 由颜色字符、风格字符、和标记字符构成。现介绍其格式参数含义分别如下:label:用于给所绘制的曲线定义名称,此名字在图示中显示。只要在字符串前后添加$符号,matplotlib就会使用其内嵌的late
6、x引擎绘制的数学公式。color:指定曲线的颜色。常用的颜色字符有蓝色(b)、绿色(g)、红色(r)、青绿色(c)、洋红色(m)、黄色(y)、黑色(k)、白色(w)、灰度值字串(0.8)其取值范围“01”、RGB颜色值(#008000)linewidth:指定曲线的宽度。b.:指定曲线的颜色和线型,这个参数称为格式化参数,它能够通过一些易记的符号快速指定曲线的样式。常用的线型有实线.、破折线.、点画线.、虚线:、无线条。12.1 Matplotlib简介 第十二章项目实战:数据可视化绘制子图在Matplotlib中用轴表示一个绘图区域,一个绘图对象(figure)可以包含多个轴(axis),我
7、们可以将其理解为子图。上面绘制正余弦的例子中,绘图对象只包括一个轴,因此只显示了一个轴。我们可以使用subplot函数快速绘制有多个轴的图表。其默认的函数调用格式如下:subplot(numRows,numCols,plotNum)Subplot 通过numRows、numCols两个参数将绘图区域划分为numRows*numCols个子区域,然后按照从左到右,从上到下的顺序对每个子区域进行编号,并且子图的编号从1开始。12.1 Matplotlib简介 第十二章项目实战:数据可视化绘制子图下面,我们通过subplot函数对正余弦函数图像使用子图绘制,程序代码如下:12.1 Matplotli
8、b简介 第十二章项目实战:数据可视化绘制子图12.1 Matplotlib简介 第十二章项目实战:数据可视化添加标注标注又称注释,是在matplotlib所绘制的图像中,为了使用户方便理解图像的含义而添加的注释性文字。其类似于程序编写中程序员为了提高代码的可读性,给代码所添加的注释性语句。给图像添加标注的根本目的是提高图像的可读性,增强和使用者的可交互性。通常,使用text()函数可将文本放置在轴域的任意位置,用来标注绘图的某些特征。我们用annotate()方法提供辅助函数进行定位,使标注变得准确、方便。做标注时,文本的位置、和标注点的位置。均由元组(x,y)构成。其中参数xy表示标注点的位
9、置位,参数xytext表示文本位置。12.1 Matplotlib简介 第十二章项目实战:数据可视化添加标注12.1 Matplotlib简介 第十二章项目实战:数据可视化添加标注12.1 Matplotlib简介 第十二章项目实战:数据可视化Pylab模块应用Matplotlib还提供了一个名为pylab的模块,它是一款由python提供的可以绘制二维,三维数据的工具模块,可以生成matab绘图库的图像。另外,它包括了许多NumPy和pyplot模块中常用的函数,方便用户快速的进行计算和绘图,十分适合在Python Shell交互式环境中使用。本小节,我们来简单介绍一下pylab模块的使用方
10、法。通常,在我们安装matplotlib时,该模块已默认完成安装。因而无需单独进行安装操作。12.1 Matplotlib简介 第十二章项目实战:数据可视化Pylab模块应用运用pylab 模块绘制正弦函数。12.1 Matplotlib简介 第十二章项目实战:数据可视化Pylab模块应用第十二章项目实战:数据可视化12.1 Matplotlib简介12.2 Artist模块介绍12.3 Pandas绘图大数据应用人才培养系列教材12.4 词云图12.2 Artist模块介绍 第十二章项目实战:数据可视化概述Matplotlib绘图库的API包含三个图层,其含义分别如下:backend_bas
11、es.FigureCanvas(画板)、backend_bases.Renderer(渲染)、artist.Artist(如何渲染)。相比前两个API而言,Artist用于处理所有的高层结构,例如处理图表、文字和曲线等的绘制和布局。通常我们只和Artist打交道,而不需要关心底层的绘制细节。Artists分为简单类型和容器类型两种。简单类型的Artists为标准的绘图元件,例如Line2D、Rectangle、Text、AxesImage 等等。而容器类型则可以包含许多简单类型的Artists,使它们组织成一个整体,例如Axis、Axes、Figure等。通常,使用Artists创建图表的标准
12、流程包含一下三个步骤:创建Figure对象。用Figure对象创建一个或者多个Axes或者Subplot对象。调用Axies等对象的方法创建各种简单类型的Artists。12.2 Artist模块介绍 第十二章项目实战:数据可视化概述Artist 安装:12.2 Artist模块介绍 第十二章项目实战:数据可视化概述下面我们通过一个简单的例子,对artist 库的使用进行简单介绍,该示例中,依据Artists创建图表的标准流程三步走完成正弦函数sin(x)的绘制。注意在使用Figure对象创建subplot对象时,若只有一个子图,则其参数为(1,1,1)。12.2 Artist模块介绍 第十二
13、章项目实战:数据可视化概述12.2 Artist模块介绍 第十二章项目实战:数据可视化属性Matplotlib所绘制的图表中的每一个元素都由Artist控制,而每个Artist对象都有一大堆属性控制其显示效果。比如,figure对象包含了Rectangle实例,它可以设置背景颜色和透明度。同样的Axes也含有。这些实例被储存在Figure.patch.和Axes.patch中。12.2 Artist模块介绍 第十二章项目实战:数据可视化属性Artist对象的所有属性都通过相应的 get_*和 set_*函数进行读写,例如下面的语句将alpha属性设置为当前值的一半:fig.set_alpha(
14、0.5*fig.get_alpha()如果你想用一条语句设置多个属性的话,可以使用set函数:fig.set(alpha=0.5,zorder=2,lable=$sin(x)$)第十二章项目实战:数据可视化12.1 Matplotlib简介12.2 Artist模块介绍12.3 Pandas绘图大数据应用人才培养系列教材12.4 词云图12.3 Pandas绘图 第十二章项目实战:数据可视化简介Pandas 是python下最强大的数据分析和探索工具,它包含高级的数据结构和精巧的工具,使得在Python中处理数据简单快捷。Pandas构建在Numpy之上,使得以Numpy为中心的应用更便捷。P
15、andas功能强大,支持类似与SQL的数据操作,并且带有丰富的数据处理函数。Pandas 统计作图函数依赖于Matplotlib,因而,通常与Matplotlib函数一起使用。本节我们将对Pandas 库的安装和其统计作图函数进行简单介绍。12.3 Pandas绘图 第十二章项目实战:数据可视化安装pip install pandas。12.3 Pandas绘图 第十二章项目实战:数据可视化使用为了能够熟练的掌握Pandas 的使用,在学习如何使用Pandas绘图之前,大家首先需要了解其自带的两个重要的数据结构:数据框(DateFrame)和系列(Series)。使用这种数据结构,你便可很容易
16、的在计算机内存中构建虚拟的数据库。数据框:和关系数据库中的二维表类似,由行和列构成。通常,行和列都有各自的索引。使用索引,便可以快速的定位到要访问的数据框中的数据(行,列)。在数据框中,面向行的操作和面向列的操作是对称的。创建数据框的方式很多,我们常用包含相等长度的列表的字典或Numpy数组来创建数据框。以列表字典为例,创建数据框示例如下:12.3 Pandas绘图 第十二章项目实战:数据可视化使用12.3 Pandas绘图 第十二章项目实战:数据可视化使用如上代码所示,生成一张考生成绩二维表。行索引默认由0开始,列索引由用户自定义,也即对应字段名称。另外,我们也可以显性的对行索引进行自定义,
17、在上面代码基础之上添加如下语句:12.3 Pandas绘图 第十二章项目实战:数据可视化使用系列:通常是对具有同一属性的值的统称。我们可以将其理解为一个一维数组,也即退化了的数据框。默认情况下,系列的索引是自增非负整数数列。如上示例,我们可以通过系列获取具有同一属性的某一列记录,比如姓名Name。示例如下:12.3 Pandas绘图 第十二章项目实战:数据可视化使用另外,数据框可以看作是字典类型,其对数据本身的的增、删、改、查与Python中字典的操作类似,这里就不再赘述。接下来,我们来了解一下如何使用Pandas库中的函数绘制图表。12.3 Pandas绘图 第十二章项目实战:数据可视化使用
18、我们用饼图来统计学生成绩等级占比图:12.3 Pandas绘图 第十二章项目实战:数据可视化使用第十二章项目实战:数据可视化12.1 Matplotlib简介12.2 Artist模块介绍12.3 Pandas绘图大数据应用人才培养系列教材12.4 词云图12.4 词云图 第十二章项目实战:数据可视化简介“词云”这个概念由美国西北大学新闻学副教授、新媒体专业主任里奇戈登(Rich Gordon)提出的。戈登做过编辑、记者,曾担任迈阿密先驱报(Miami Herald)新媒体版的主任。他一直很关注网络内容发布的最新形式即那些只有互联网可以采用而报纸、广播、电视等其它媒体都望尘莫及的传播方式。通常
19、,这些最新的、最适合网络的传播方式,也是最好的传播方式。词云图是数据分析中比较常见的一种可视化手段。词云图又称文字云,是对文本数据中出现频率较高的关键词用图像的方式以视觉上的突出展示,形成关键词的渲染。将文字制作成类似“云”一样的彩色图片,从而过滤掉大量的文本信息,使人一眼就可以领略文本数据的主要表达意思。这里为了更好直观形象的理解词云图,我们先来感受一下百度中常见的文字云。12.4 词云图 第十二章项目实战:数据可视化简介12.4 词云图 第十二章项目实战:数据可视化思路解析作为一个球迷,2018世界杯进行的如火如荼,热搜榜上那些词语点击率高呢?我们怎么样才能快速的直观的获取相关的热点信息呢
20、?本小节,我们将用Python中词云图的展示方法,为大家展现2018世界杯的热点词语图像描述。1.任务要求了解Python第三方库分词包(jieba)、词云包(WordCloud)的基本使用方法。以2018世界杯球迷趋势分析报告为分析对象,基于Python环境搭建词云图开发环境,完成此文本的词云图分析。2.环境要求词云图程序的正常运行需要安装如下Python 第三方常用库:matplotlib、Numpy、pandas、codecs,另外还要安装词云图程序开发的专用库:jieba(分词包),WordCloud(词云包)。12.4 词云图 第十二章项目实战:数据可视化代码实现12.4 词云图 第十二章项目实战:数据可视化代码实现12.4 词云图 第十二章项目实战:数据可视化运行结果感谢聆听