Python基础与大数据应用第十一章-Python可视化和可视化工具课件.pptx

上传人(卖家):三亚风情 文档编号:3371860 上传时间:2022-08-24 格式:PPTX 页数:64 大小:2.90MB
下载 相关 举报
Python基础与大数据应用第十一章-Python可视化和可视化工具课件.pptx_第1页
第1页 / 共64页
Python基础与大数据应用第十一章-Python可视化和可视化工具课件.pptx_第2页
第2页 / 共64页
Python基础与大数据应用第十一章-Python可视化和可视化工具课件.pptx_第3页
第3页 / 共64页
Python基础与大数据应用第十一章-Python可视化和可视化工具课件.pptx_第4页
第4页 / 共64页
Python基础与大数据应用第十一章-Python可视化和可视化工具课件.pptx_第5页
第5页 / 共64页
点击查看更多>>
资源描述

1、第十一章 Python可视化与可视化工具北京西普阳光教育科技股份有限公司 中国IT教育解决方案专家 2018年10月制作:丁辉1目 录 Contents01Python可视化与可视化工具简介02pandas基本图形绘制03matplotlib交互式绘图0405070406matplotlib.pyplot的使用项目训练小结2Python可视化与可视化工具01数据可视化概述数据可视化概述 数据可视化是以的形式展示数据。数据可视化后,可以更加直观地帮助人们快速地理解数据,发现数据的关键点。数据可视化技术是关于数据视觉表现形式的科学技术研究。主要指的是较为高级的技术方法,而这些技术方法允许利用图形、

2、图像处理、计算机视觉以及用户界面,通过表达、建模以及对立体、表面、属性以及动画的显示,对数据加以可视化解释。Python语言有丰富的、功能强大的、第三方库的支持,在数据可视化方面具有较强的功能。45数据可视化对于数据描述以及探索性分析至关重要,恰当的统计图表可以更有效的传递数据信息。在 Python 中已经有很多数据可视化方面的第三方库,例如:Matplotlib、pandas、Seaborn、ggplot、Bokeh、pygal、geoplotlib等。lmatplotlib是一个Python绘图库,已经成为Python中公认的数据可视化工具,通过matplotlib可以很轻松地画一些或简单

3、或复杂地图形,几行代码即可生成折线图、直方图、条形图、散点图等,使用方便简单。lpandas库的应变得更加普及,它的身影经常见于市场分析、金融分析以及科学计算中。作为数据分析工具的集大成者,pandas作者曾说,pandas中的可视化功能比matplotlib的子库pyplot更加简便和功能强大。通常情况下pandas就足够应付全部的可视化工作了。lSeaborn是基于matplotlib产生的一个模块,专攻于统计可视化,可以和pandas进行无缝链接,使初学者更容易上手。相对于matplotlib,Seaborn语法更简洁,两者关系类似于numpy和pandas之间的关系。lHoloView

4、s是一个开源的Python库,可以用非常少的代码行完成数据分析和可视化,除了默认的matplotlib后端外,还添加了一个Bokeh后端。Bokeh提供了一个强大的平台,通过结合Bokeh提供的交互式小部件,可以使用HTML5 canvas和WebGL快速生成交互性和高维可视化,非常适合于数据的交互式探索。lAltair是Python一个公认的统计可视化库。它的API简单、友好、一致,并建立在强大的vega-lite(交互式图形语法)之上。Altair API不包含实际的可视化呈现代码,而是按照vega-lite规范发出JSON数据结构。由此产生的数据可以在用户界面中呈现,这种优雅的简单性产生

5、了漂亮且有效的可视化效果,且只需很少的代码。可视化工具简介可视化工具简介6l PyQtGraph是在PyQt4/PySide和numpy上构建的纯Python的GUI图形库。它主要用于数学、科学、工程领域。尽管PyQtGraph完全是在Python中编写的,但它本身就是一个非常有能力的图形系统,可以进行大量的数据处理,数字运算;使用了Qt的GraphicsView框架优化和简化了工作流程,实现以最少的工作量完成数据可视化,且速度也非常快。l ggplot是基于R的ggplot2和图形语法的Python绘图系统,实现了更少的代码绘制更专业的图形。它使用一个高级且富有表现力的API来实现线、点等元

6、素的添加,颜色的更改等不同类型可视化组件的组合或添加,而不需要重复使用相同的代码,然而这对那些试图进行高度定制的用户来说,ggplot并不是最好的选择,尽管它也可以制作一些非常复杂、好看的图形。ggplot与pandas紧密联系。如果你打算使用ggplot,最好将数据保存在DataFrames中。l Bokeh是一个Python交互式可视化库,支持现代化web浏览器展示(图表可以输出为JSON对象、HTML文档或者可交互的网络应用)。它提供风格优雅、简洁的D3.js的图形化样式,并将此功能扩展到高性能交互的数据集、数据流上。使用Bokeh可以快速便捷地创建交互式绘图、仪表板和数据应用程序等。B

7、okeh能与NumPy、Pandas、Blaze等大部分数组或表格式的数据结构完美结合。l pygal是一种开放标准的矢量图形语言,它基于XML(Extensible Markup Language),可以生成多个输出格式的高分辨率Web图形页面,还支持给定数据的HTML表导出。用户可以直接用代码来描绘图像,可以用任何文字处理工具打开SVG图像,通过改变部分代码来使图像具有交互功能,并且可以插入到HTML中通过浏览器来观看。l VisPy是一个用于交互式科学可视化的Python库,快速、可伸缩、且易于使用,是一个高性能的交互式2D/3D数据可视化库,利用了现代图形处理单元(gpu)的计算能力,

8、通过OpenGL库来显示非常大的数据集。l NetworkX是一个Python包,用于创建、操纵和研究复杂网络的结构、以及学习复杂网络的结构、功能及其动力学。NetworkX提供了适合各种数据结构的图表、二合字母和多重图,还有大量标准的图算法,网络结构和分析措施,可以产生随机网络、合成网络或经典网络,且节点可以是文本、图像、XML记录等,并提供了一些示例数据(如权重,时间序列)。NetworkX测试的代码覆盖率超过90%,是一个多样化,易于教学,能快速生成图形的Python平台。可视化工具简介可视化工具简介7l Plotly的Python graphing library在网上提供了交互式的、

9、公开的,高质量的图表集,可与R、Python、Matlab等软件对接。它拥有在别的库中很难找到的几种图表类型,如等值线图,树形图和三维图表等,图标类型也十分丰富,申请了API密钥后,可以一键将统计图形同步到云端。但美中不足的是,打开国外网站会比较费时,且一个账号只能创建25个图表,除非你升级或删除一些图表。l folium是一个建立在Python系统之上的js库,可以很轻松地将在Python中操作的数据可视化为交互式的单张地图,且紧密地将数据与地图联系在一起,可自定义箭头、网格等HTML格式的地图标记。该库还附有一些内置的地形数据。l Gleam允许你只利用Python构建数据的交互式,生成可

10、视化的网络应用。无需具备HTML CSS或JaveScript知识,就能使用任一种Python可视化库控制输入。当创建一个图表的时候,可以在上面加上一个域,让任何人都可以实时地玩转你的数据,让你的数据更通俗易懂。l Vincent是一个很酷的可视化工具,它以Python数据结构作为数据源,然后把它翻译成Vega可视化语法,并且能够在D3.js上运行。这让你可以使用Python脚本来创建漂亮的3D图形来展示你的数据。Vincent底层使用pandas数据,并且支持大量的图表:条形图、线图、散点图、热力图、堆条图、分组条形图、饼图、圈图、地图等等。l Python-igraph是Python界面的

11、igraph高性能图形库,主要针对复杂的网络研究和分析。l Mayavi2是一个通用的、跨平台的三维科学数据可视化工具。可以在二维和三维空间中显示标量、向量和张量数据。可通过自定义源、模块和数据过滤器轻松扩展。Mayavi2也可以作为一个绘图引擎,生成matplotlib或gnuplot脚本,也可以作为其它应用程序的交互式可视化的库,将生成的图片嵌入到其它应用程序中。可视化工具简介可视化工具简介8l geoplotlib是Python的一个用于地理数据可视化和绘制地图的工具箱,并提供了一个原始数据和所有可视化之间的基本接口,支持在纯Python中开发硬件加速的交互式可视化,并提供点映射、内核密

12、度估计、空间图、泰森多边形图、形状文件和许多更常见的空间可视化的实现。除了为常用的地理数据可视化提供内置的可视化功能外,geoplotlib还允许通过定义定制层来定义复杂的数据可视化(绘制OpenGL,如分数、行和具有高性能的多边形),创建动画。l Basemap和Cartopy包支持多个地理投影,并提供一些可视化效果,包括点图、热图、等高线图和形状文件。PySAL是一个由Python编写的空间分析函数的开源库,它提供了许多基本的工具,主要用于形状文件。但是,这些库不允许用户绘制地图贴图,并且对自定义可视化、交互性和动画的支持有限。l Leather适用于现在就需要一个图表并且对图表是不是完美

13、并不在乎的人。它可以用于所有的数据类型,然后生成SVG图像,这样在调整图像大小的时候就不会损失图像质量。这个库很新,一些文档还没有最后完成。图像成品非常基础但是这就是设计目标。l missingno 用图像的方式让你能够快速评估数据缺失的情况,而不是在数据表里面步履维艰。可以根据数据的完整度对数据进行排序或过滤,或者根据热度图或树状图来考虑对数据进行修正。l Python有很多不同的可视化工具,选择一个正确的工具有时是一种挑战。如果你想做一些专业的统计图表,推荐你使用Seaborn、Altair;数学、科学、工程领域的学者就选择PyQtGraph、VisPy、Mayavi2;网络研究和分析方面

14、,NetworkX、Python-igraph会是一个不错的选择;地理投影就选geoplotlib、folium;评估数据缺失就选missingno;有了HoloViews再也不用为高维图形犯愁;如果你不喜欢花俏的修饰,那就选择Leather。如果你是一名新手matplotlib、pandas会很好上手。l 本章将重点讲解 matplotlib以及 pandas 的绘图功能,这也是现在最为常用、最为稳健,同时功能也非常丰富的数据可视化解决方案。可视化工具简介可视化工具简介pandas基本图形绘制02拆线图拆线图10,由(x,y)坐标确定相应的点,然后将这些点依次连接起来,就形成了折线图。折线图

15、通常用来表示数据变化的趋势,一般是随时间变化的趋势。(1)绘图准备此处主要做的是基本库导入,主要是pandas、numpy、matplotlib、matplotlib.pyplot库的导入。在脚本文件的开头包含以下导入语句或者交互模式依次执行以下语句:import numpy as npimport pandas as pdimport matplot.pyplot as plt后面将直接使用这些库,不再重复导入了。(2)由Series类型数据生成折线图使用Series.plot()方法创建折线图创建Series对象 s=pd.Series(np.random.rand(100)#随机产生10

16、0个之间的服从正态分布样本绘制折线图 s.plot()显示所绘图形 plt.show()值在0111拆线图拆线图Series.plot()方法参数很多,使用help(pd.Series.plot)列出Series.plot()方法所有的参数为:“self,kind=line,ax=None,figsize=None,use_index=True,title=None,grid=None,legend=False,style=None,logx=False,logy=False,loglog=False,xticks=None,yticks=None,xlim=None,ylim=None,ro

17、t=None,fontsize=None,colormap=None,table=False,yerr=None,xerr=None,label=None,secondary_y=False,*kwds”。具体见下表。参数说明label用于图例的标签ax要在其上进行绘制的matplotlib subplot(子图)对象。如果没有设置,则使用当前matplotlib subplotstyle传给matplotlib的风格的字符串(如ko),图形对象显示样式kind可以是line、bar、barh、kde、hist、box、density、area、pie,表示图的类型logy在Y轴上使用对数标尺

18、use_index逻辑值,默认用索引做x轴rot旋转刻度标签(0-360)xticks设置x轴刻度的值,序列形式yticks设置Y轴刻度的值,序列形式xlimX轴的范围,列表或元组ylimY轴的范围,列表或元组grid显示轴网格线figsize元组表示的图的尺寸,单位为英寸fontsize坐标轴刻度值的字号title图表的标题table逻辑值,为True时,显示数据表格legend逻辑值,为True时,显示图例colormap设置图区域的颜色secondary_y逻辑值,为True时,y轴在图的右侧loglog逻辑值,同时设置x,y轴刻度是否取对数*kwds关键字参数,将选项传递给matplo

19、tlib plotting 方法12拆线图拆线图style参数,表示传给matplotlib风格的字符串(如“ko”),其中“k”位置表示的是线条颜色,对于线条颜色的种类还有以下几个细分:别名bgrcmykw全名BlueGreenRedCyanMagentaYellowBlackWhite“o”位置表示折线每个点的表现形式,“o”表示实心圆点,“x”表示x型点;“-”位置表示线型,“-”表示实线,“”表示短划线,“-.”表示点划线,“:”表示虚线。也可将这三者表示形式分开,写法如:series.plot(linestyle=dashed,color=k,marker=o)重绘折线图 s.plo

20、t(legend=True,title=line picture,style=bo-)#增加了图例、标题、线形颜色 plt.show()图标题图例13拆线图拆线图(3)由DataFr ame类型数据生成折线图使用DataFrame.plot()方法创建折线图创建DataFrame对象 df=pd.DataFrame(np.random.randn(100,2),index=range(100),columns=list(AB)df=df.cumsum()#累积值,使图有区分绘图 df.plot(use_index=True,title=”DataFrame picture”)显示图形 plt.

21、show()14拆线图拆线图每个columns列绘制一条折线,用不同的图例进行区别。DataFrame.plot()方法除了与Series.plot()方法相同的参数外,还有一些参数见下表。参数说明subplots逻辑值,为True时,将各个DataFrame列绘制到单独的subplot(子图)中sharex如果subplots=True,则共用同一个X轴,包括刻度和界限sharey同上legend添加一个图例到subplot(默认为True)sort_columns以字母表顺序绘制各列,默认使用前列顺序另外,DataFrame.plot()方法的“kind”参数多了两种类型的图,即“scat

22、ter”和“hexbin”。改变参数,重绘 df3=pd.DataFrame(np.random.randn(10,2),columns=B,C).cumsum()#累积值 df3A=pd.Series(list(range(len(df3)#增加一列“A”#x轴为“A”列,创建子图,图类型为柱状图 df3.plot(subplots=True,kind=bar,x=A)15柱状图柱状图 s=pd.Series(np.random.randn(10),index=list(abcdefghij)s.plot(kind=barh,alpha=0.5)#水平柱图 plt.show()水平柱状图16

23、柱状图柱状图 ,是一种以长方形的长度为变量的统计图表,由一系列高度不等的纵向长方形表示数据分布的情况,用来比较两个及以上的价值(不同时间或者不同条件),只有一个变量,通常用于较小的数据集分析。柱状图亦可横向排列,或用多维方式表达。柱状图展示的是数值对比关系,可以通过柱状的长度表现哪些类别高,哪些类别低等情况。pandas中绘制柱状图可以用绘制,也可在DataFrame.plot()或Series.plot()方法中使用参数设置进行绘制。示例如下:s=pd.Series(np.random.randn(10),index=list(abcdefghij)s.plot(kind=bar,alpha

24、=0.5)#alpha表示透明度,取值范围是01 plt.axhline(0,color=k)#在y=0处绘一条黑色的直线 plt.show()垂直柱状图17柱状图柱状图 df=pd.DataFrame(np.random.rand(6,4),index=one,two,three,four,five,six,columns=pd.Index(A,B,C,D,name=Genus)df.plot.bar()plt.show()图例设置了X轴刻度18柱状图柱状图 df =pd.DataFrame(np.random.rand(10,4),columns=a,b,c,d)df.plot.bar(s

25、tacked=True,use_index=True)#叠加 plt.show()堆叠19直方图直方图 直方图(histogram)是一种可以对。数据点被拆分到离散的、间隔均匀的面元中,绘制的是各面元中数据点的数量。直方图描述的是分类统计结果,即数据分布情况,一般用横轴表示数据类型,纵轴表示分布情况。pandas中绘制直方图可以用绘制,也可在DataFrame.plot()或Series.plot()方法中使用参数设置进行绘制。#随机生成15之间的整数100个 data=pd.Series(np.random.randint(low=1,high=5,size=100)#生成直方图,蓝色,带图

26、例,x轴为05 data.plot.hist(color=b,xticks=range(6),legend=True)plt.show()20直方图直方图 df4=pd.DataFrame(a:np.random.randn(100)+1,b:np.random.randn(100),columns=a,b)#透明度为0.5,bins为显示的柱子数目,本例分为30个区段,x轴为-34 df4.plot.hist(subplots=True,alpha=0.5,bins=30,xticks=range(-3,4)plt.show()21散点图散点图 散点图通常是用来表述两个连续变量之间的关系,图

27、中的每个点表示目标数据集中的每个样本。在回归分析中,散点图是数据点在直角坐标系平面上的分布图,据此可以选择合适的函数对数据点进行拟合。pandas中用DataFrame.plot.scatter()或DataFrame.plot(kind=scatter,)方法来绘制。散点图的绘制就是在图上绘制(x,y)对应的点。示例如下:df=pd.DataFrame(np.random.rand(50,2),columns=a,b)#x轴“a”列,y轴为“b”列,s指定点的大小,为“b”列值的50倍 df.plot.scatter(x=a,y=b,s=dfb*50)plt.show()散点图必须指定“x”

28、和“y”参数22散点图散点图 df=pd.DataFrame(np.random.rand(50,4),columns=a,b,c,d)#在单个轴上绘制多个列组,要用重复指定目标轴的绘图方法#建议再指定颜色和标签关键字来区分每个组#“a”&“b”,指定目标轴,三个图都绘制在一个目标轴上 ax=df.plot.scatter(x=a,y=b,color=DarkBlue,label=Group 1)df.plot.scatter(x=a,y=d,color=r,label=Group 2,ax=ax)df.plot.scatter(x=a,y=c,color=k,label=Group 3,ax

29、=ax)pltshow()23面积图面积图面积图又称区域图,强调数量随时间而变化的程度,也可用于引起人们对总值趋势的注意。堆积面积图和百分比堆积面积图还可以显示部分与整体的关系。pandas中可以使用Series.plot.area()和DataFrame.plot.area()或Series.plot(kind=area,)和DataFrame.plot(kind=area,)创建面积图。df=pd.DataFrame(np.random.rand(10,4),columns=a,b,c,d)#不堆叠,选取“a”、“b”两列画图 dfa,b.plot.area(subplots=True,s

30、tacked=False)plt.show()24饼图饼图饼图显示一个数据系列中各项的大小与各项总和的比例,可以直观地比较各项的比例。pandas中用Series.plot.pie()和DataFrame.plot.pie()或者是Series.plot(kind=pie,)和DataFrame.plot(kind=pie,)来绘制。s=pd.Series(np.random.rand(4),index=a,b,c,d,name=series)s.plot.pie(figsize=(6,6)#设置图的尺寸为6x6英寸,这样饼图是圆的 plt.show()25饼图饼图 s=pd.Series(n

31、p.random.rand(4)s.plot.pie(labels=AA,BB,CC,DD,colors=r,g,b,c,autopct=%.2f,fontsize=15,figsize=(6,6)plt.show()26饼图饼图 df=pd.DataFrame(np.random.rand(4,2),index=a,b,c,d,columns=x,y)df.plot.pie(subplots=True,figsize=(6,3)plt.show()27饼图饼图如果所有值的总和小于1.0,则绘制扇形饼图 series=pd.Series(0.1*4,index=a,b,c,d,name=ser

32、ies2)series.plot.pie(figsize=(6,6)plt.show()28密度图密度图密度图是表现与数据值对应的边界或域对象的一种理论图形表示方法。点密度图用点(数)来表现与数据值对应的边界或域对象。一个域对象中点的总个数代表了域对应的数据值。如果某县有10,000个高级市民,每个点代表100位高级市民,在这个县的界线内将会有100个点。对于每个点可以代表很大数值的原始数据,用点密度图是非常适合的。例如人口、快餐店个数、某种商标的碳酸水的提供商个数等。其实密度图,可利用数值出现频率绘制的直方图进行曲线拟合,会得到密度图;绘制的图形是根据直方图得到的条状分布的顶点连接后得到的平

33、滑曲线,X轴是DataFrame中的数值分布,Y轴是密度(Density)。pandas中用Series.plot.density()和DataFrame.plot.density()方法、Series.plot(kind=density,)和DataFrame.plot(kind=density,)方法、Series.plot.kde()和DataFrame.plot.kde()方法、Series.plot(kind=kde,)和DataFrame.plot(kind=kde,)方法绘制。s=pd.Series(1,2,2.5,3,3.5,4,5,3,3,5,4,4,5,6,5,4,6,3,

34、2,5,4,3,5)s.plot.density()plt.show()29密度图密度图 length=pd.DataFrame(length:10,20,15,10,1,12,12,12,13,13,13,14,14,14,51,51,51,51,51,4,4,4,4,high:23,45,67,43,44,34,54,22,3,4,3,45,34,43,43,5,54,32,21,32,12,32,43)length.plot(kind=kde)plt.show()matplotlib交互绘图03概述概述31matplotlib是Python中最常用的可视化工具之一,可以非常方便地创建各种

35、类型的2D图表和一些基本的3D图表。它支持输出多种格式的图形图像,并且可以使用多种GUI界面库交互式地显示图表。matplotlib可用于Python脚本、Python shell、iPython等开发环境,其子模块pyplot提供了经典Python编程接口。本节主要介绍交互式绘图模式。matplotlibmatplotlib绘图基础绘图基础321.导入子模块:import matplotlib.pyplot as plt。2.创建画布:fig=plt.figure()。3.添加分区:ax=fig.add_subplot(311)。关于分区(子图),是这样的规则。整个画布可以等分为m行 n列个

36、子区域,然后按照从左到右,从上到下的顺序对每个子区域进行编号,左上的子区域编号为1。如果行、列和子图数这三个数都小于10,可以把它们缩写为一个整数,例如(323)和(3,2,3)是相同的。如fig.add_subplot(311)表示分成3行1列,占用第1个位置,即添加到第1行第1列的子区域中,fig.add_subplot(222)表示分成2行2列,占用第2个位置,即添加到第1行第2列的子区域中。4.设置x轴最小、最大值,y轴最小、最大值:ax.axis(-5,5,0,1)。5.添加标题:plt.title(this is a title)。6.坐标轴添加标题:plt.xlabel(x)、p

37、lt.ylabel(y)。7.显示图形:plt.show()。8.画图:ax.scatter(x,y)matplotlib交互绘图331.交互绘图模式的基本命令打开交互绘图模式:plt.ion()关闭交互绘图模式:plt.ioff()清当前坐标轴:plt.cla()清除所有子图:plt.clf()关闭画布(窗口):plt.close()2.绘图 import matplotlib.pyplot as plt import numpy as np import pandas as pd plt.ion()#打开交互模式 fig=plt.figure(figsize=(10,10)#创建画布,尺寸

38、为10 x10 ax=fig.add_subplot(2,2,1)#添加子图1 s=pd.Series(20*np.random.rand(10)#把随机数放大20倍 s.plot(ax=ax,color=r,linestyle=-)matplotlib交互绘图34 ax=fig.add_subplot(222)#添加子图2 s.plot.bar()#画柱图matplotlib交互绘图35 ax=fig.add_subplot(223)#添加子图3 df.plot.scatter(x=x,y=y,ax=ax)#绘制散点图 ax=fig.add_subplot(224)#添加子图4 s.plot

39、.pie(ax=ax)#绘制饼交互绘图模式操作过程中,如果当前子交互绘图模式操作过程中,如果当前子图所绘图形有误,可以用图所绘图形有误,可以用方法清除方法清除所绘图形,可以用所绘图形,可以用方法清除画布所方法清除画布所有子图,用有子图,用方法关闭当前画布。方法关闭当前画布。退出交互绘图模式,用退出交互绘图模式,用方法。方法。36【例11-1】在交互绘图模式下模拟某物体的运行轨迹。#ch11_1.pyimport matplotlib.pyplot as pltimport numpy as npimport math plt.close()#关闭窗口fig=plt.figure()ax=fig

40、.add_subplot(1,1,1)ax.axis(equal)#设置图像显示的时候xy轴比例相同plt.grid(True)#添加网格plt.ion()#打开交互模式IniObsX=0000#设置x的初始值IniObsY=4000#设置y的初始值IniObsAngle=135#初始角度IniObsSpeed=10*math.sqrt(2)#初始速度print(开始仿真)try:for t in range(50):#某物体的运行轨迹 obsX=IniObsX+IniObsSpeed*math.sin(IniObsAngle/180*math.pi)*t obsY=IniObsY+IniOb

41、sSpeed*math.cos(IniObsAngle/180*math.pi)*t ax.scatter(obsX,obsY,c=b,marker=*)#散点图 plt.pause(0.5)#延时0.5秒except Exception as err:print(err)matplotlib交互绘图matplotlib.pyplot的使用04pyplotpyplot绘图基础绘图基础38matplotlib的pyplot子库提供了很多绘图API,方便用户快速绘制2D图表。matplotlib.pyplot是命令行式函数的集合,每一个函数都对图像作了修改,比如创建图形,在图像上创建画图区域,在画

42、图区域上画线,在线上标注等。39import numpy as npimport pandas as pdimport matplot.pyplot as plt绘图准备pyplotpyplot绘图基础绘图基础1.plt.plot()方法plt.plot()方法是一个基本的绘制折线方法。常用的格式如下:plot(x,y,fmt,*kwargs)#画单条折线plot(x,y,fmt,x2,y2,fmt2,.,*kwargs)#画多条折线用于画线的点。x省略时,默认从0开始;格式字符串,按颜色、点标记和线型顺序组合,如“ro.”,当然也可分别用“linestyle=.,color=r,marker

43、=o”关键参数格式表示。颜色、线型同6.2.1中所讲的颜色和线型;点的标记有“.”表示实心的点,“o”表示空心的点,“v”表示倒三角形,“”表示正三角形等共22种;用来设置图形属性的选项,如“linewidth=2”表示线宽为2,“alpha=0.5”表示透明度为0.5等。随着使用的需要,不断熟悉多种选项参数,也可用help(plt.plot)查看。40pyplotpyplot绘图基础绘图基础2.其它属性设置方法plt.title(My first plot,fontsize=20,fontname=Times New Roman),定义图表的标题为“My first plot”,并设置标题的

44、字号和字体。plt.xlabel(counting,color=gray),定义x轴标签为“counting”,颜色为gray。plt.ylabel(Square values,color=gray),同上。plt.text(5,0.5,$y=sin(x)$,fontsize=20,bbox=facecolor:yellow,alpha:0.2),在图(5,0.5)位置添加“y=sin(x)”文本,并设置文本的字号,并将文本放入文本框。text()方法支持放在两个$符号之间的数学表达式。plt.grid(True),“True”表示显示网格线。plt.legend(First,Second,T

45、hird,loc=1),loc是图例放置位置,默认值为1即图表的右上角。当图表中有多个序列线条时,图例的顺序要与调用plot()函数顺序一致。plt.savefig(/usr/plot.png),图表以png的格式保存到usr目录下,方便其它文件使用这个图表。但是需要注意的是savefig()函数需要放在生成图表的一系列命令最后,否则会得到一个空白的文件。plt.subplot(211)。plt.axis(equal)。41pyplotpyplot绘图基础绘图基础【例11-2】pyplot绘图样例。#ch11_2.pyimport matplotlib.pyplot as pltimport

46、numpy as npplt.grid(True)x=np.arange(0,5,0.1)y1=np.sin(x)y2=np.sin(x+4)plt.subplot(211)plt.plot(x,y1,b-)plt.legend(First s,loc=1)plt.subplot(212)plt.plot(x,y2,g)plt.legend(Second s,loc=1)plt.savefig(/usr/plot.png)plt.show()42pyplotpyplot绘图基础绘图基础【例11-2】pyplot绘图样例。#ch11_2.pyimport matplotlib.pyplot as

47、 pltimport numpy as npplt.grid(True)x=np.arange(0,5,0.1)y1=np.sin(x)y2=np.sin(x+4)plt.plot(x,y1,b-)plt.legend(First s,loc=1)plt.plot(x,y2,g)plt.legend(Second s,loc=1)plt.savefig(/usr/plot.png)plt.show()柱图柱图43【例11-3】随机生成7个0100之间的值作为”星期一星期天”的值,绘制柱状图。#ch11-3.py#coding:utf-8import matplotlib.pyplot as p

48、ltimport numpy as npimport matplotlib as mpl#显示中文,设置中文字体zhfont1=mpl.font_manager.FontProperties(fname=/usr/share/fonts/truetype/arphic/ukai.ttc)#windows环境用此语句显示中文#mpl.rcParamsself.defaultFamilyfontext)=simpliFied x=np.arange(7)data=np.random.randint(0,100,7)colors=np.random.rand(7*3).reshape(7,3)#随机

49、生成7种颜色组合labels=星期一,星期二,星期三,星期四,星期五,星期六,星期天plt.title(星期图,fontproperties=zhfont1)plt.xticks(x,labels,fontproperties=zhfont1)plt.bar(x,data,alpha=0.8,color=colors)plt.show()plt.barh()方法是绘制水平柱状图直方图直方图44pyplot用于绘制直方图的方法为hist(),该方法除了绘制直方图外,还以元组形式返回直方图的计算结果。它能够接收一系列样本个体和期望的分组数量作为参数,会把样本范围分成多个区间,然后计算每个区间所包含

50、的样本个体的数量。hist(x,bins=None,range=None,density=None,weights=None,cumulative=False,bottom=None,histtype=bar,align=mid,orientation=vertical,rwidth=None,log=False,color=None,label=None,stacked=False,normed=None,hold=None,data=None,*kwargs)lx:输入的数据,可以为一个序列数,也可以多组;lbins:直方图中分组个数;lrange:指定分组区间的上下限,默认为(x.min

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(Python基础与大数据应用第十一章-Python可视化和可视化工具课件.pptx)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|