大数据导论思维第16章-PYTHON数据可视化课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《大数据导论思维第16章-PYTHON数据可视化课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 导论 思维 16 PYTHON 可视化 课件
- 资源描述:
-
1、 大数据导论第十六章CONTENTS目录PART 01 PYTHON数据可视化工具PART 02 MATPLOTLIB可视化库PART 03 PANDAS可视化PART 04 SEABORN可视化模块PART 05 BOKEH可视化模块PART 06 PYGAL可视化模块PART 07 GEOPLOTLIB可视化模块PART 08 作业PART 01 PYTHON数据可视化工具在Python中,将数据可视化有多种选择,无论要画什么图,从最基本的图表到交互式的Web页面,都能找到相对的库。PYTHON数据可视化工具Python数据可视化工具 matplotlib Pandas Seaborn B
2、okeh Pygal geoplotlibPART 02 matplotlib可视化库matplotlib是一个用于创建出版质量图表的桌面绘图包,它完整支持二维绘图以及部分支持三维绘图函数式绘图matplotlib有一套函数形式的绘图接口:matplotlib.pyplot模块。利用函数的调用,matplotlib可以轻松的利用一行命令来绘制直线,然后再用一系列的函数调整结果。下面的代码调用matplotlib.pyplot模块绘制一条直线#画一条直线:调用pyplot 函数from matplotlib.pyplot import*plot(0,1,0,1)#画一条从点(0,0)到点(1,1
3、)的直线title(a strait line)#添加标题xlabel(x value)#添加x轴标题ylabel(y value)#添加y轴标题savefig(demo.jpg)#存储为jpg文件matplotlib可视化库import matplotlib.pyplot as pltx=1,2,3,4,5y=2.3,3.4,1.2,6.6,7.0plt.figure(figsize=(8,6)plt.subplot(2,2,1)plt.plot(x,y)plt.title(plot)plt.subplot(2,2,2)plt.scatter(x,y)plt.title(scatter)pl
4、t.subplot(2,2,3)plt.bar(x,y)plt.title(bar)plt.subplot(2,2,4)plt.pie(y)plt.title(pie)show()在matplotlib.pyplot中,还包含其他种类的绘图函数,包括:折线、散点图、饼图、柱状图、等高线等。下面的代码使用一组数据,通过调用matplotlib.pyplot函数生成这些几何图形。matplotlib可视化库面向对象式绘图事实上,对象是描述图像的最自然的方式,面向对象编程最成功的领域就是在计算机图形方面。在matplotlib中,整个图像为一个Figure对象。在Figure对象中可以包含一个,或者
5、多个Axes对象。每个Axes对象都是一个拥有自己坐标系统的绘图区域。面向对象式绘图每个Axes对象的绘图中只有一个坐标系区域,也就是ax,包含以下对象:ax:实际绘图的区域;title:图表的标题;data:要可视化的数据;xaxis和yaxis:x轴和y轴代表水平和垂直的轴线;tick:x轴和y轴的刻度,刻度标识坐标轴的分隔,包括最小刻度和最大刻度;lable:x轴和y轴的刻度标签:表示特定坐标轴的值。面向对象式绘图面向对象式绘图from matplotlib.figure import Figurefrom matplotlib.backends.backend_agg import F
6、igureCanvasAgg as FigureCanvascanvas=FigureCanvas(fig)ax =fig.add_axes(0.1,0.1,0.8,0.8)line =ax.plot(0,1,0,1)ax.set_title(a straight line(OO)ax.set_xlabel(x value)ax.set_ylabel(y value)canvas.print_figure(demo.jpg)图像坐标将一张图的左下角视为原点,将图像的x方向和y方向总长度都看做1。x方向的0.2就是指20%的图像在x方向的总长,y方向0.8的长度指80%的y方向总长。(0.5,0
7、.5)是图像的中点,(1,1)指图像的右上角。设置属性n 设置颜色、线型、和标记matplotlib允许用户改变线的各种属性,如线条风格、颜色或者宽度。根据要表达的信息合理地设置线型并明显地区分目标受众,能让图给观众流下更深刻的印象。matplotlib的plot函数接受一组X和Y坐标,可以接受一个表示颜色和线型的字符串缩写。例如,要根据x和y绘制绿色虚线,可以编写如下代码:plt.plot(x,y,g-)plt.plot(x,y,linestyle=-,color=g)设置属性from matplotlib.figure import Figurefrom matplotlib.backen
8、ds.backend_agg import FigureCanvasAgg as FigureCanvasdata=randn(30).cumsum()fig =Figure()canvas=FigureCanvas(fig)plt =fig.add_axes(0.1,0.1,0.8,0.8)plt.plot(data,color=k,linestyle=dashed,linewidth=1.5,marker=o)#通过参数还可以设置线的宽度canvas.print_figure(demo2.jpg)通过设置线的属性,下述代码生成的图形就更加清晰明了设置属性n 设置刻度和标签刻度是图形的一部分
9、,由刻度定位器指定刻度所在的位置,刻度格式器指定刻度显示的样式。修改X轴的刻度,最简单的办法是使用set_xticks和set_xticklabels。set_xticks:告诉matplotlib要将刻度放在数据范围中的哪些位置,缺省情况下位置的值就是刻度标记的值。set_xticklabels:设置刻度标签的值、字体、角度等plt.set_xticks(0,250,500,750,1000)plt.set_xticklabels(one,two,three,four,five,rotation=30,fontsize=small)设置属性设置属性n 设置图例和注解图例和注解清晰连贯地解释了
10、数据图表的内容,通过给每个图表元素添加一个关于所显示数据的简短描述,能让用户更容易理解。设置图例和注解的方法是为每个subplot指导一个字符串标签,然后可以调用plt.legend()来自动创建图例。设置属性from matplotlib.figure import Figurefrom matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvasfrom matplotlib.pyplot import matplotlib.pyplot as plt fig =Figure()canvas=FigureCan
11、vas(fig)ax =fig.add_axes(0.1,0.1,0.8,0.8)ax.plot(randn(1000).cumsum(),k,label=one)ax.plot(randn(1000).cumsum(),k-,label=two)ax.plot(randn(1000).cumsum(),k.,label=three)ax.legend(loc=best)Show()设置属性在上述代码中,为每个图表元素指定了一个字符串标检,说明了颜色、线形状、标签值,这样legend()会把它们添加到图例框中。可以通过loc参数确定图例框的位置。这个参数是可选的,一般情况下,“best”是不错
12、的选择,因为它会选择最不碍事的位置放置图例框定制绘图from matplotlib.figure import Figurefrom matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvasfig =Figure()canvas=FigureCanvas(fig)ax =fig.add_axes(0.1,0.1,0.8,0.8)from matplotlib.path import Pathimport matplotlib.patches as patchesverts=(0.,0.),(0.,1.),(0.
13、5,1.5),(1.,1.),(1.,0.),(0.,0.),codes=Path.MOVETO,Path.LINETO,Path.LINETO,Path.LINETO,Path.LINETO,Path.CLOSEPOLY,path=Path(verts,codes)patch=patches.PathPatch(path,facecolor=coral)ax.add_patch(patch)ax.set_xlim(-0.5,2)ax.set_ylim(-0.5,2)canvas.print_figure(demo.jpg)matplotlib实际上提供了更大的自由度,允许用户以更基础的方式来
14、绘制图形,下面的代码可以绘制一个五边形图。matplotlib可视化库上面的代码首先确定顶点,然后构建了一个path对象,这个对象实际上就是5个顶点的连线。在codes中,先使用MOVETO将画笔移动到起点,然后依次用直线连接(LINETO)在path建立了封闭的5边形后,再在path的基础上构建了patch对象,是一个图形块。patch的背景颜色选为coral。最后,将这个patch对象添加到预先准备好的ax上,就完成了整个绘图。PART 03 Pandas可视化Pandas是基于Numpy构建的含有更高级数据结构和工具的数据分析包。使用Pandas的Series方法绘制图形import p
15、andas as pdfrom pandas import Series,DataFrameimport numpy as pyimport matplotlib.pyplot as pltfrom numpy.random import randns_data=Series(randn(100)s_data.plot()plt.show()Series 可以看做一个定长的有序字典。基本任意的一维数据都可以用来构造 Series 对象。Series 对象包含两个主要的属性:index 和 values。使用Pandas的DataFrame方法绘制图形DataFrame 是一个表格型的数据结构,
16、它含有一组有序的列(类似于 index),每列可以是不同的值类型。基本上可以把DataFrame看成是共享同一个index的Series的集合。from pandas import Series,DataFrame from numpy.random import randnimport numpy as npimport matplotlib.pyplot as pltdf=DataFrame(randn(10,5),columns=A,B,C,D,E,index=np.arange(0,100,10)df.plot()plt.show()使用DataFrame的plot方法绘制图像会按照数
17、据的每一列绘制一条曲线,参数中的columns就是列的名称而index本来DataFrame的行名称。from pandas import Series,DataFrame from numpy.random import randnimport numpy as npimport matplotlib.pyplot as pltdf=DataFrame(randn(10,5),columns=A,B,C,D,E,index=np.arange(0,100,10)df.plot(kind=bar)plt.show()Seaborn是针对统计绘图的可视化模块,是在matplotlib的基础上进行
18、了更高级的API封装,在默认情况下就能创建赏心悦目的图表,便于用户能够能够做出各种有吸引力的统计图表。PART 04 Seaborn可视化模块Seaborn简介Seaborn可视化模块具有如下特点:创建具有统计意义的图;默认情况下就能创建赏心悦目的图表;能理解pandas的DataFrame类型,所以它们一起可以很好地工作;增加调色板功能,利用色彩丰富的图像揭示数据中的模式;运用数据子集绘制与比较单变量和双变量分布的功能;运用聚类算法探究矩阵间的结构,可视化矩阵数据;可视化时间序列数据及不确定性的展示;利用网格建立复杂图像集,可在分割区域制图,用于复杂可视化。基本概念1.分组绘图分组绘图是指在
19、一张图上可视化多个变量值。2.分面绘图分面绘图是指在一张纸上划分不同的区域,在不同的子区域上绘制不同的图形。3.统计绘图分组绘图的时候,需要先对分组变量使用统计函数,然后绘图。如果不使用统计绘图,就需要先用Pandas进行统计,然后再用Seaborn绘图,就会变得复杂数据集介绍n Tips数据集tips是一个客户用餐后付小费情况的数据集。每条数据包括7个数据项:餐费、小费、客户性别、是否抽烟、用餐日(周几)、用餐时间(中餐、晚餐)、人数。数据集共有144条记录total_billtipsexsmokerdaytimesize16.991.01FemaleNoSunDinner210.341.6
20、6MaleNoSunDinner321.013.5MaleNoSunDinner323.683.31MaleNoSunDinner224.593.61FemaleNoSunDinner4数据集介绍n Titanic数据集titanic是一个关于Titanic乘客情况统计数据,包括了每个乘客的15项信息:Survived:是否获救,0=否,1=是;Pclass:票的等级,1=头等,2=2等,3=3等;Sex:性别,male/female;Age:年龄,如果小于1岁,就会用小数表示;Sibsp:同行夫妻/兄妹人数;Parch:同行父母/儿女人数;Fare:票价;Embarked:登船港口代码,S=
21、Southampton,C=Cherbourg,Q=Queenstown;数据集介绍Class:票的等级,取值为First、Second、Third;Who:性别,取值为Man、Women;adult_male:是否成年男人,取值True、False;deck:甲板层号,取值A、B、C、D、E、F、G;embark_town:登船港口城市名,取值Southampton,Cherbourg,Queenstown;alive:是否获救,取值yes、no;alone:是否单人,取值True、false。乘客数据举例:(1,1,female,38.0,1,0,71.2833,C,First,woman
22、,False,C,Cherbourg,yes,False)。分类散点图Seaborn的分类图分为三组:分类变量在每个类别上显示的观测值 抽象出每个观测值的分布 应用统计估计值显示中心趋势测量值的观测值和置信区间第一组包括函数swarmplot()和stripplot()第二组包括boxplot()和violinplot()第三组包括barplot()和pointplot()尽管这些函数都有其特定的参数用于控制该数据的可视化的详细信息,但这些函数都共用一套基础API来规范如何接收数据。分类散点图分类散点图用来显示变量在每个类别上的观测值。使用stripplot()可以非常简单的将某种分类别的数据
23、展现在散点图上tips=sns.load_dataset(tips)sns.stripplot(x=day,y=total_bill,data=tips)plt.show()分类散点图在带状图中,散点图通常会重叠,使得很难看到数据的完全分布。解决方案是沿着分类轴使用一些随机的“抖动”来调整位置。tips=sns.load_dataset(tips)sns.stripplot(x=day,y=total_bill,data=tips,jitter=True)plt.show()也可以使用函数swarmplot(),它使用避免重叠点的算法定位分类轴上的每个散点图点,从而保障所有点都不重叠。tips
24、=sns.load_dataset(tips)sns.swarmplot(x=day,y=total_bill,data=tips)plt.show()分类散点图带分布的散点图带分布的散点图值分布图n 箱线图箱线图是一种用作显示一组数据分散情况资料的统计图。其绘制须使用常用的统计量,能提供有关数据位置和分散情况的关键信息。箱形图提供了一种只用5个点对数据集做简单总结的方式。这5个点包括中点、Q1、Q3、分部状态的高位和低位。箱形图很形象的分为中心、延伸以及分布状态的全部范围。import seaborn as snssns.set_style(whitegrid)tips=sns.load_d
25、ataset(tips)#分组绘制箱线图,分组因子是day,在x轴不同位置绘制ax=sns.boxplot(x=day,y=total_bill,data=tips)as.show()值分布图n 箱线图值分布图n 小提琴图小提琴图其实是箱线图与核密度图的结合,箱线图展示了分位数的位置,小提琴图则展示了任意位置的密度,通过小提琴图可以知道哪些位置的密度较高。在图中,白点是中位数,黑色盒型的范围是下四分位点到上四分位点,细黑线表示须(离散值)。外部形状即为核密度估计。在概率论中用来估计未知的密度函数,属于非参数检验方法之一。值分布图n 小提琴图import seaborn as snssns.se
展开阅读全文