1、Python语言大数据应用人才培养系列教材第十二章 项目实战:数据可视化12.1 Mat plo t lib 简介12.2 Art ist模块介绍12.3 Pandas绘图12.4 词云图12.1 Matplotlib 简介第十二章 项目实战:数据可视化概述Mat plo t lib是基于Pyt ho n语言的开源项目,旨在为Pyt ho n提供 一个数据绘图包。它提供了一整套和mat lab类似的命令API,适合交 互式地进行制图。并且可以方便地将其作为绘图控件,嵌入GUI应用 程序中。它的文档相当完备,并且Gallery页(ht t ps:mat plo t lib.o rg/galler
2、y.ht ml)中有上百幅缩略图,打开之后 都有源程序。因此如果你需要绘制某种类型的图,只需要在这个页面 中浏览.选择图像.打开复制.粘贴一下,基本上都能搞定。本 节作为mat plo t lib的入门,主要介绍mat plo t lib绘图的一些基本概念 和基本操作。12.1 Matplotlib 简介第十二章 项目实战:数据可视化Pypiot模块介绍俗话说的好熟读唐诗三百首,不会作诗也会吟,模仿是最好的老师,编写程序也不例外。这里,我们首先通过mat plo t lib自带的gallery.ht ml页面中的案例了解绘图程序的基本架构,然后,借助归纳的框架为原型编写程序。Q|https:/
3、matplotlik.org/cjal lery.htmlhome|examples|gallery|pypiot|docs Click on any image to see full size image and source code Gallery Lines,bars,and markers Shapes and collections,Statistical plots Images,contours,and fiekis Pie and polar charts Color Text,labels,and annotations Ticks and spines Axis sca
4、les,Sulsplots,axes,and figures Style sheets Specialty plots Showcase-API pylab examples mploOd tooikrt,axes grid toolkit widgets MtsceHaneous examplesLines,bars,and marke-rsZYVtarti_demo12.1 Matplotlib 简介第十二章 项目实战:数据可视化Pypiot模块介绍俗话说的好熟读唐诗三百首,不会作诗也会吟,模仿是最好的 老师,编写程序也不例外。这里,我们首先通过mat plo t lib自带的 galle
5、ry.ht ml页面中的案例了解绘图程序的基本架构,然后,借助归 纳的框架为原型编写程序。12.1 Matplotlib 简介第十二章 项目实战:数据可视化Pypiot模块介绍然后,复制dem。中的代码,至Pyt ho n shell中运行,结果如下图:12.1 Matplotlib 简介第十二章 项目实战:数据可视化Pypiot模块介绍分析如上demo示例代码,我们不难得出mat plo t lib绘图程序的 基本结构,包含如下六个部分:分别导入模块 mat plo t lib.pyplo t、numpyo 定义横轴标度并以横轴标度为自变量定义纵轴功能函数。通过f igure。函数指定图像的
6、长宽比。通过plo t。函数绘制功能函数。通过pit的属性函数设置图像属性。通过sho w。函数显示图像。12.1 Matplotlib 简介第十二章 项目实战:数据可视化Pypiot模块介绍案例:绘制正余弦曲线。nCreated on Mon JUN 2 2018n(aauthor:xjn i m port mat plot lib.pypiot as pit#车发入 matplotlib 白勺|冬中莫tAbpyplot,并 重命名7jplt o import numpy as np x=np.linspace(O,lO,1OOO)y=np.sin(x)z=np.cos(x*2)plt.fi
7、gure(figsize=(8,4)#才旨定阳(象白勺长比比 plt.plot(xzyzlabel=$sin(x)$,color=redzlinewidth=2)plt.plot(xzzzlabel=$cos(x/K2)$,color=blue,linewidth=l)plt.xlabel(Time(s)Text(O.5zOzTime(s),)plt.y label(Volt)Text(0,0.5/Volt)plt.title(xj-PyPlot First Example)#了图白勺树:题Text(O.5,l,xj-PyPlot First Example)1.2)#Y车由白勺显表2 国(1
8、.2,1.2)plt.legend()#显示图中右I 一角的提示彳言总 plt.show()12.1 Matplotlib 简介第十二章 项目实战:数据可视化Pypiot模块介绍程序运行结构示意图:12.1 Matplotlib 简介第十二章 项目实战:数据可视化plot。函数在绘制正余弦函数图时,我们调用了Mat plo t lib的plo t。函数。该 函数主要用于在f igure绘制对象中绘制各种曲线,其调用形式灵活,可用其参数指定其显示风格。下面的程序代码是通过调用plo t函数进 行曲线绘图的:plt.plot(x?yjabel=$sin(x)$color=redJi ne widt
9、h=2)plt.plot(x?z.label=$cos(xA2)$,color=blue.linewidth=1 12.1 Matplotlib 简介第十二章 项目实战:数据可视化plot。函数由以上代码可以看出,plo t。常用的参数包括坐标数据,格式参数。标准格 式是plt.plo t(x,y,f o rmat _st ring,*kwargs)。x轴数据,y轴数据,f o rmat _st ring 控制曲线的格式字串f o rmat _st ring由颜色字符、风格字符、和标记字符构成。现介绍其格式参数含义分别如下:label:用于给所绘制的曲线定义名称,此名字在图示中显示。只要在字符
10、串 前后添加“$”符号,mat plo t lib就会使用其内嵌的lat ex引擎绘制的数学公式。c o lo r:指定曲线的颜色。常用的颜色字符有蓝色(b)、绿色()、红 色(T)、青绿色(c)、洋红色(m)、黄色(y)、黑色(k)、白色(w)、灰度值字串(08)其取值范围0r、RGB颜色值(#008000)linewidt h:指定曲线的宽度。b.:指定曲线的颜色和线型,这个参数称为格式化参数,它能够通过一些易 记的符号快速指定曲线的样式。常用的线型有实线、破折线、点画 线、虚线:、无线条。12.1 Matplotlib 简介第十二章 项目实战:数据可视化绘制子图在Mat plo t li
11、b中用轴表示一个绘图区域,一个绘图对象(f igure)可 以包含多个轴(axis),我们可以将其理解为子图。上面绘制正余弦的例 子中,绘图对象只包括一个轴,因此只显示了一个轴。我们可以使用 subplo t函数快速绘制有多个轴的图表。其默认的函数调用格式如下:subplo t(numRo wsz numCo ls,plo t Num)Subplo t通过numRo ws、numCo ls两个参数将绘图区域划分为 numRo ws*numCo ls个子区域,然后按照从左到右,从上到下的顺序 对每个子区域进行编号,并且子图的编号从1开始。12.1 Matplotlib 简介第十二章 项目实战:数
12、据可视化绘制子图下面,我们通过subplo t函数对正余弦函数图像使用子图绘制,程序 代码如下:aaa import matpIotlib.pypIot as pl”aaa import numpy as nfx-aaa x=np.linspace(Or 10,1000-1aaa y=np.sinCxJ aa plt.figure(figsize=(8,4)-,-,plt.plot(x,y,label=*$sin(x$color=*red linewidth=2H-p-aaa plt.ylabelCy voirj aaa bpIot(2,1,2-pIt.su-3 color=*blueTlin
13、ewidth=1 aaa plt.ylabelC2 volt*Text(0 05,N voir-plt.xlabelCTirneCsJ-,Text(0.50TiEe(s)X aaa plt.showtW_12.1 Matplotlib 简介第十二章 项目实战:数据可视化绘制子图12.1 Matplotlib 简介第十二章 项目实战:数据可视化添加标注标注又称注释,是在mat plo t lib所绘制的图像中,为了使用户方 便理解图像的含义而添加的注释性文字。其类似于程序编写中程序员 为了提高代码的可读性,给代码所添加的注释性语句。给图像添加标 注的根本目的是提高图像的可读性,增强和使用者的可交
14、互性。通常,使用t ext。函数可将文本放置在轴域的任意位置,用来标注 绘图的某些特征。我们用anno t at e。方法提供辅助函数进行定位,使 标注变得准确、方便。做标注时,文本的位置、和标注点的位置。均 由元组(x,y)构成。其中参数xy表示标注点的位置位,参数xyt ext表 示文本位置。12.1 Matplotlib 简介第十二章 项目实战:数据可视化添加标注i mpo rt mat p lo t lib.pypio t as pitimpo rt n u mpy as npx=np.lin spac e(Oz IO,1OOO)y=np.sin(x)z=n p.c o s(x*2)f
15、 ig=plt.f igure(f igsize=(8,4)ax=f ig.add su bplo t(211)plt.su bplo t(2,1,1)plt.plo t(x,y,label=$sin(x)$z c o lo r=redz lin ewidt h=2)plt.ylabel(*y vo lt)plt.su bplo t(2,1,2)plt.plo t(x,z,label=$c o s(xA2)$z c o lo r=blue,lin ewidt h=l)plt.ylabel(z vo lt)plt.xlabeKTimef s)ax.an n o t at e(sin(x)z xy
16、=(2,1),xyt ext=(3z 1.5),arro wpro ps=dic t(f ac ec o lo r=blac k,shrin k=O.O5),)ax.set _ylim(.2z 2)plt.sho w()12.1 Matplotlib 简介第十二章 项目实战:数据可视化添加标注12.1 Matplotlib 简介第十二章 项目实战:数据可视化Pylab模块应用Mat plo t lib还提供了一个名为pylab的模块,它是一款由pyt ho n 提供的可以绘制二维,三维数据的工具模块,可以生成mat ab绘图库 的图像。另外,它包括了许多NumPy和pypio t模块中常用的函
17、数,方便用户快速的进行计算和绘图,十分适合在Pyt ho n Shell交互式环 境中使用。本小节,我们来简单介绍一下pylab模块的使用方法。通常,在我们安装mat plo t lib时,该模块已默认完成安装。因而 无需单独进行安装操作。12.1 Matplotlib 简介第十二章 项目实战:数据可视化Pylab模块应用运用pylab模块绘制正弦函数。i mpo rt pylab i mpo r mat h xvalu es=y valu es=n u m=0.0 while n u m 3.23(from jinja2-artist)Downloading https:/iles.pyth
18、onhosted.org/packages/4d/de/32=2.5.0 in d:pythonlibsite-pa ckages(rom pandas)(2.7.3)Requirement already satisfied:six=l.5 in d:pythonlibsite-packages(from p/thon-dateuti 1.5.0-partdas)(1.11.0)Installing collected packages:pandasSuccessfully installed pandas_0.23.012.3 Pandas绘图第十二章 项目实战:数据可视化使用为了能够熟练
19、的掌握Pandas的使用,在学习如何使用Pandas绘 图之前,大家首先需要了解其自带的两个重要的数据结构:数据框(Dat eFrame)和系列(Series)。使用这种数据结构,你便可很容易的在 计算机内存中构建虚拟的数据库。数据框:和关系数据库中的二维表类似,由行和列构成。通常,行和列都有各自的索引。使用索引,便可以快速的定位到要访问的数 据框中的数据(行,列)。在数据框中,面向行的操作和面向列的操 作是对称的。创建数据框的方式很多,我们常用包含相等长度的列表 的字典或Numpy数组来创建数据框。以列表字典为例,创建数据框 示例如下:12.3 Pandas绘图第十二章 项目实战:数据可视化
20、使用 import pandas as pd加白二卬孙9:保李川;土力;赵六;见七1阿。:20923189心0密:89,72,65”80 df=pd.DataFrame(data)print(df)Name Age Score0张三20 891李四19 722王五23 653赵六18 774郭七19 8012.3 Pandas绘图第十二章 项目实战:数据可视化使用如上代码所示,生成一张考生成绩二维表。行索引默认由0开始,列索引由用户自定义,也即对应字段名称。另外,我们也可以显性的 对行索引进行自定义,在上面代码基础之上添加如下语句:dfl=pd.DataFrame(data,columns=N
21、ame,Age1,Score,index=lone,7,two,z,three7fourl,five)print(dfl)Name Age Score one 张三 20 89 two 李四 19 72 three 王五 23 65 four 赵六 18 77 five 郭七 19 80 12.3 Pandas绘图第十二章 项目实战:数据可视化使用系列:通常是对具有同一属性的值的统称。我们可以将其理解为 一个一维数组,也即退化了的数据框。默认情况下,系列的索引是自 增非负整数数列。如上示例,我们可以通过系列获取具有同一属性的 某一列记录,比如姓名Name o示例如下:priot(dfl fNa
22、me,)one 张三/two 李四/three 王五。four 赵六一five 郭七一Name:Name:dtype:objectI;:12.3 Pandas绘图第十二章 项目实战:数据可视化使用另外,数据框可以看作是字典类型,其对数据本身的的增、册!I、改、查与Pyt ho n中字典的操作类似,这里就不再赘述。接下来,我们来了解一下如何使用Pandas库中的函数绘制图表。函数名称一功能,所属库一ploto*21绘制线性二维图QlatplQ.tlib pandas1pieQp绘制拼形图。Matplotlib pandashistO43绘制二维条形直方图pandasboxplotO绘制样本数据箱
23、体图pandas*3plot(logy=TmeX绘制y轴的对数图一pandas*3plot(yeir=error)1绘制误差条形图一pandas*312.3 Pandas绘图第十二章 项目实战:数据可视化使用我们用饼图来统计学生成绩等级占比图:impo rt numpy as np impo rt pandas as pdimpo rt mat plo t lib.pypio t as pit lable-CA/B/C,DJ perc ent=25,51,19,5 explo de=0,0.2,0,0 plt.axes(aspec t=l)pit.pie(x二perc ent,labels=1
24、abe aut o pc t=%.2f%z explo de=explo de,shado w=rue)plt.sho w()12.3 Pandas绘图第十二章 项目实战:数据可视化使用大数据应用人才培养系列教材第十二章 项目实战:数据可视化12.1 Mat plo t lib 简介12.2 Art ist模块介绍12.3 Pandas绘图12.4 词云图12.4词云图第十二章 项目实战:数据可视化简介词云这个概念由美国西北大学新闻学副教授、新媒体专业主任里 奇戈登(Ric h Go rdo n)提出的。戈登做过编辑、记者,曾担任迈阿密先驱 报(Miami Herald)新媒体版的主任。他一直
25、很关注网络内容发布的最新 形式即那些只有互联网可以采用而报纸、广播、电视等其它媒体都望尘 莫及的传播方式。通常,这些最新的、最适合网络的传播方式,也是最好的 传播方式。词云图是数据分析中比较常见的一种可视化手段。词云图又称文字云,是对文本数据中出现频率较高的关键词用图像的方式以视觉上的突出展示,形 成”关键词的渲染”。将文字制作成类似云一样的彩色图片,从而过滤掉大 量的文本信息,使人一眼就可以领略文本数据的主要表达意思。这里为了更好 直观形象的理解词云图,我们先来感受一下百度中常见的文字云。12.4词云图第十二章 项目实战:数据可视化简介.上黑穗鳄java版及m 晅_指m属ref 标盘Writ
26、任C cm|7a专栏ntfM Fl rS七+人”*温、a呈I三叫 f*JtZc+窿也耳 III Ifath,src Beaut if ulso up I 何哥的博客M KPri I Q W卡 Wi nStrI ng.抓取(pPenHead3矶爬空快速入门攻1权声明.V V廿。?凝代玛托丫让圈上纭Path做祖学Origin玛博士OpenHeaders L爬虫快速入门攻略,川一.1 ma原创ImgtrMo 列表Thumb 实战分类JpgJpgBt去闭,Zh项目管理中文版 订阅 文档协作UrllibI-It it leFileQuestion 举报 lo s 人阅读Rd拜格html存储分析打开url
27、-NtTxtImagesLinuxSpider的语句等级访问aE隹询 分布式 结果Bsluri 嗦耳胆fad 积开汽冷二 开啕I I I I0有什:Saf ari 收藏 标签 WebRe转找YCsdnScrapy 4-w-*!BMviaFzir.,.*J*-c4的1xt文件I a m c a-内用石;TjC?Chro mexy-一夕7 4 t t*0Parser 函数12.4词云图第十二章 项目实战:数据可视化思路解析作为一个球迷,2018世界杯进行的如火如荼,热搜榜上那些词语点击率 高呢?我们怎么样才能快速的直观的获取相关的热点信息呢?本小节,我们 将用Pyt ho n中词云图的展示方法,为
28、大家展现2018世界杯的热点词语图像 描述。1.任务要求了解Pyt ho n第三方库分词包(jieba)、词云包(Wo rdClo ud)的基本使用 方法。以2018世界杯球迷趋势分析报告为分析对象,基于Pyt ho n环境搭 建词云图开发环境,完成此文本的词云图分析。2.环境要求词云图程序的正常运行需要安装如下Pyt ho n第三方常用库:mat plo t lib.Numpy、pandas、c o dec s,另外还要安装词云图程序开发的 专用库:jieba(分词包),Wo rdClo ud(词云包)。12.4词云图第十二章 项目实战:数据可视化代码实现 import matplotlib
29、.pypiot as pit from wordcloud import WordCloud,ImageColorGenerator,STOPWORDS import jieba import numpy as np from PIL import Image abel_mask=np.array(lmage.open(Dypython/code/test/lovejseturned.png11)text_from_file_with_apath=open(D:/python/code/test/2018wordcup.txt).read()wordlist_afterjieba=jieba.
30、cutftext from file with apath,cut_all=True)wl_space_split=1.join(wordlist afterjieba)Building prefix diet from the default dictionary.Loading model from cache C:UsersADMINIlAppDataLocalTempjieba.cacheLoading model cost 2.740 seconds.Prefix diet has been built succesfully.12.4词云图第十二章 项目实战:数据可视化代码实现 m
31、y wordcloud:WordCloud(width=600,height=400,background color=white,#设置背景颜色 mask=abel_mask,#设置背景图片 max_words=400,#设置最大现实的字数 stopwords:STOPWORDS,#设置停用词fontjDaDz/python/code/test/msyahei.ttf1,#设置字体格式,如不设置显示不f中文 max_font_size=100,#设置字体最大值 prefer_horizontal=0.8,margin=2?random_state=30,#设置配色方案scale=1.5).generate(wl_space_split)image colors=lmageColorGenerator(abel_mask)plt.imshow(my wordcloud)plt.axisfoff)(.0.5,79.5,78.5,.0.5)plt.show()12.4词云图第十二章 项目实战:数据可视化运行结果 一建胃去k abo o l0说:丁挹餐趋舞,w y婴,用辱一-K c q.二#irt一%*XT_R*曙唧嗖堇雷C:一现爱矮踞序世券界至?世事界杯销了浮感谢聆听