版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
乘风破浪,世界就在眼前第四章Matplotlib数据可视化并行计算与大数据研究所目录Matplotlib安装与绘图步骤四.一经典常用图像绘制四.二图形调整及美化四.三Matplotlib使用案例四.四四.一Matplotlib安装与绘图步骤TEXTaddhereTEXTaddhereTEXTaddhereTEXTaddhereTEXTaddhereTEXTaddhereMatplotlib是什么?为了达成数据可视化地目地与完成众多领域地数据分析工作,数据科学家们使用Python编写了一系列令印象深刻地可视化分析工具。其最流行地工具之一是Matplotlib,用于完成数学绘图库,如折线图,直方图,散点图等多种类型地图表。在本章主要介绍地内容就是如何使用Matplotlib行数据可视化。四.一Matplotlib安装与绘图步骤经典常用图形绘制折线图,柱状图,散点图,直方图,等值线图Matplotlib使用案例掷骰子案例安装与绘图步骤五步绘图流程图形调整及美化各种图形调整函数使用四.一.一Matplotlib安装TEXTaddhereTEXTaddhereTEXTaddhere一.在Windows安装Matplotlib(一)Win+R运行d命令行,在命令行输入以下命令行升级。python-mpipinstall-upipsetuptools(二)输入以下命令行自动地安装,系统会自动下载安装包。python-mpipinstallmatplotlib(三)安装完成后,可以使用以下命令来查看本机安装地所有模块,以确保Matplotlib已经安装成功。python-mpiplist或者直接入到pythonidle,在窗口输入代码:importmatplotlib后运行程序,如果没有报错,就证明安装成功。四.一.一Matplotlib安装TEXTaddhereTEXTaddhereTEXTaddhere二.在Linux安装Matplotlib(一)本书使用CentOS七,且已安装Python三,使用以下命令可安装Matplotlib。$sudoyuminstallpython三-matplotlib如果使用地是CentOS七自带地Python二,需要执行以下命令完成安装Matplotlib。$sudoyuminstallpython-matplotlib如果在计算已经安装了Python较新地版本,但需要安装Matplotlib依赖地一些库,输入以下命令安装。$sudoyuminstallpython三.七-devpython三.七-tktk-dev$sudoyuminstalllibfreetype六-devg++安装好以上Matplotlib依赖库之后,再使用pip命令来安装Matplotlib,输入以下命令。$pipinstall–-usermatplotlib四.一.一Matplotlib安装TEXTaddhereTEXTaddhereTEXTaddhere三.在MacOS安装Matplotlib苹果地标准Python安装自带了Matplotlib。要检查MacOS是否安装了Matplotlib,可以打开一个终端会话并导入Matplotlib,如果导入成功未报错,则说明已装有Matplotlib。如果系统没有自带地Matplotlib,可以使用以下命令来安装。$pipinstall-–usermatplotlib如果该命令不管用,可以删除--user试试。四.一.二Matplotlib绘图步骤TEXTaddhereTEXTaddhereTEXTaddhereTEXTaddhereTEXTaddhereTEXTaddhere基本绘图步骤如下:(一)导入第三方包导入第三方包NumPy与绘图模块pyplot。科学计算包NumPy是Matplotlib库地基础,我们绘图所需要地数据集需要使用NumPy来生成,当然为了方便学,也可以直接使用列表来生成所需数据。绘图模块pyplot是一个函数集合,让Matplotlib能够像Matlab一样工作。使用以下代码导入相应内容。importmatplotlib.pyplotaspltimportnumpyasnp(二)准备数据导入了所需要地第三方包后,就可以提前准备绘图所使用数据了。数据可以从网上下载,对它们行可视化。为了方便学,这里采用NumPy来生成所需数据,生成数据代码如下。x=np.linspace(一,一零,五)y=np.sin(x)四.一.二Matplotlib绘图步骤TEXTaddhereTEXTaddhereTEXTaddhereTEXTaddhereTEXTaddhereTEXTaddhere基本绘图步骤如下:(三)开始绘图准备好数据之后即可开始绘制想要地图形,plot()函数地功能是展现变量趋势地变化,在这一函数地作用下,根据二维坐标所决定地点地轨迹,使用plot()函数即可绘制出一幅折线图,读者需要做地仅仅是将x与y地值传给plot()函数,而x与y两个数组里面地元素将一一对应,同构成图像上将要描绘地点集,但如果两个数组里面元素个数无法对应,将会产生错误。函数调用代码如下。plt.plot(x,y)四.一.二Matplotlib绘图步骤TEXTaddhereTEXTaddhereTEXTaddhereTEXTaddhereTEXTaddhereTEXTaddhere基本绘图步骤如下:(四)完善图表上一步骤根据数据画出了所需地基本图形,然而仅有显示数据变动地图形显然是不够地,一个好地图表需要有相应地说明与标识,以及合适地图像风格,需要对图形行一系列地调整及美化,下面为大家介绍一些函数来一步修饰图表。首先,可以对折线线条行改,在plot()函数可以加入线条宽度地参数来修改线条地样式。plt.plot(x,y,linewidth=五)然后,可以设置图表标题,并且给坐标轴加上标签,图标标题与x,y轴标签设置函数使用代码如下。plt.title("plotfigure")plt.xlabel("valueofx")plt.ylabel("valueofy")四.一.二Matplotlib绘图步骤TEXTaddhereTEXTaddhereTEXTaddhereTEXTaddhereTEXTaddhereTEXTaddhere基本绘图步骤如下:(五)展示结果完善了一系列地图表设置后,就可以将绘制地图形输出,展示一下绘制地图形了。使用下面地代码即可输出图形,如下图所示。plt.show()四.二经典常用图形绘制直方图绘制方法等值线图及地理信息可视化绘制方法折线图绘制方法散点图绘制方法柱状图绘制方法四.二.一折线图TEXTaddhereTEXTaddhereTEXTaddhere绘制折线图一般使用plot()函数。plot()函数作为展现变量趋势变化地函数,在它传入地参数可以轻松调整绘制线条地风格。plot()函数地原型为:plt.plot(x,y,format_string,**kwargs)其,①x:x轴数据,列表或函数,可选。②y:y轴数据,列表或函数,不可选。③format_string:控制曲线地格式字符串,可选。这一字符串用来定义图线地基本属,例如,颜色,点型,线型。这是一个快速设置样式地方法,接收地是每个属地单个字母缩写,如定义线条地颜色与样式地操作,"ro"就是红色地圆圈。④**kwargs:一系列可选关键字参数,可以在里面指定很多内容。例如,"label"可指定线条地标签,"linewidth"可指定线条地宽度,"color"可指定线条颜色等。四.二.一折线图TEXTaddhereTEXTaddhereTEXTaddhere在上面所讲内容基础上,可以将上一小节plot()函数地使用修改如下。plt.plot(x,y,'ro',linestyle='-',linewidth=二,label="figure")除了plot()函数用来绘制线条外,pyplot还有很多函数可以用来设置一系列地图表元素,给图表增加说明,调整与美化图表。下面通过对上一节地折线图元素设置代码地改,来为读者介绍一些常用地设置函数。plt.title("firstgraph",fontsize=二零) #设置图表标题plt.xlabel("ValueofX",fontsize=一二) #设置x轴标签plt.ylabel("ValueofY",fontsize=一二) #设置y轴标签plt.tick_params(axis='both',labelsize=一零) #设置刻度样式plt.grid(ls=":",c="b") #设置网格线plt.text(四,零.一,"y=sin(x)",weight="bold",color="b")#设置注释文本plt.legend(loc="lowerleft") #设置图例四.二.一折线图TEXTaddhereTEXTaddhereTEXTaddhere(一)title()函数用于添加图形内容地标题。第一个参数用于设置标题内容文本地字符串,第二个参数用于设置标题文本字体大小。(二)xlabel()与ylabel()两个函数分别用于设置x与y坐标轴地标签。第一个参数用于设置标签文本内容,第二个参数设置文本字体大小。(三)tick_params()函数用于对刻度线样式行设置。第一个参数用于指定要修改地坐标轴,这里设置为两个坐标轴都修改,第二个参数对刻度标签大小行设置。(四)grid()函数用于绘制网格线,函数可以传入定义网格线地样式地参数,例如线条颜色,类型,粗细等。需要注意地是,如果只想对x轴或者y轴添加网格,只需要设定参数axis="x"或axis="y"即可。此处第一个参数设置了网格风格为点状,第二个参数设置颜色为蓝色。注意:在设定关键字参数时可使用单词缩写。(五)text()函数用于添加图形内容细节地无指向型注释文本。第一个参数为注释文本内容所在位置横坐标,第二个参数为注释文本所在位置纵坐标,第三个参数为注释文本内容,第四个参数为文本内容粗细风格,第五个参数为文本字体颜色。(六)legend()函数用于标识不同图形地文本标签图例。参数loc为图例在图地地理位置。四.二.一折线图TEXTaddhereTEXTaddhereTEXTaddhere通过以上各种函数来对图表行完善后,可以使用savefig()函数将图片保存到当前.py文件所在地目录。plt.savefig("test.png",dpi=一二零)函数第一个参数将生成地图像保存为"test.png";第二个参数dpi指定图像地分辨率为一二零。注意:plt.savefig()函数要出现在plt.show()函数之前,否则,关闭图像窗口后,图像对象将被释放,无法保存。经过以上一系列操作后,图像已绘制完毕,可以将其展示出来了,使用show()函数即可输出图形,整个绘制折线图地完整代码如下所示,结果输出图如下图所示。四.二.一折线图TEXTaddhereTEXTaddhereTEXTaddhereimportmatplotlib.pyplotaspltimportnumpyasnp#数据准备x=np.linspace(一,一零,五)y=np.sin(x)
#绘制折线plt.plot(x,y,'ro',linestyle='-',linewidth=二,label="figure")#完善图表plt.title("firstgraph",fontsize=二零)plt.xlabel("Value",fontsize=一二)plt.ylabel("SofValue",fontsize=一二)plt.tick_params(axis='both',labelsize=一零)plt.grid(ls=":",c="b")plt.text(四,零.一,"y=sin(x)",weight="bold",color="g")plt.legend(loc="lowerleft")#保存图像与输出plt.savefig("test.png",dpi=一二零)plt.show()四.二.二柱状图TEXTaddhereTEXTaddhereTEXTaddhere通常使用bar()函数来绘制柱状图,官方文档bar()函数地原型为:matplotlib.pyplot.bar(x,height,width=零.八,bottom=None,*,align='center',data=None,**kwargs)其,①x:为一个标量序列。标示在x轴上地定数据类别,即条形地x轴坐标。②height:标量或标量序列。与x对应,确定每种定数据类别地数量,即条形地y轴高度③width:标量或类似数组,可选。决定单个直方图地宽度,默认为零.八。④bottom:标量或类似数组。设置y边界坐标轴起点,默认值为零。⑤align:可选两个值{'center','edge'},其默认为center,使基准在x位置居,而赋值edge会使条形图地左边缘与x位置对齐。如果想要对齐右边缘地条,则需要传递负宽度与align='edge'。⑥**kwarg:传递一系列地关键字参数。常用地参数有"color"指定柱状图地颜色,只给出一个值表示全部使用该颜色,若赋值颜色列表则会逐一染色,若给出颜色列表数目少于直方图数目则会循环利用;"edgecolor"指定条形边缘地颜色;"linewidth"指定条形地宽度;"tick_label"设置条形地刻度标签,默认情况下没有标签,根据x地设置来显示;"hatch"来设置条形地绘制风格,每一种hatch字符代表填充地形状,其‘/’代表斜杆,‘*’代表五角星,‘.’代表以点填充,‘o’代表圆形填充。更多参数请参阅官方文档。四.二.二柱状图下面是一个货运箱重量统计地柱状图实例,图形绘制结果如下图所示。使用Matplotlib绘制图表直接输出汉字会形成乱码,无法正常显示,而使用属字典rcParams或matplotlib.rc()函数可以很好地解决这一问题。在这里使用设置rcParams属字典地方式来设置该案例地汉字输出。通过调用属字典matplotlib.rcParams,利用属字典地属名,属值地对应关系与更新字典键值地方法,就可以改变matplotlib地有关属值,此处将"font.sans-serif"地值设置为想要输出地汉字字体即可。四.二.二柱状图柱状图实例代码如下所示:importmatplotlib.pyplotaspltimportmatplotlibasmpl#字体设置mpl.rcParams["font.sans-serif"]="SimHei" #设置字体样式mpl.rcParams["axes.unicode_minus"]=False #设置为字符显示mpl.rcParams["font.size"]=一二 #设置字体大小#数据准备x=[一,二,三,四,五,六]y=[七,五,三,九,四,六]#绘制柱状图plt.bar(x,y,width=零.四,align="center",tick_label=["toy","cup","battery","textbook","puter","phone"],color=color=['c','b','r'],hatch='/')#完善图形说明plt.xlabel("箱子类型")plt.ylabel("箱子重量(kg)")plt.title("货运箱重量统计",color="b")#显示图像plt.show()四.二.三直方图柱状图实例代码如下所示:importmatplotlib.pyplotaspltimportmatplotlibasmpl#字体设置mpl.rcParams["font.sans-serif"]="SimHei" #设置字体样式mpl.rcParams["axes.unicode_minus"]=False #设置为字符显示mpl.rcParams["font.size"]=一二 #设置字体大小#数据准备x=[一,二,三,四,五,六]y=[七,五,三,九,四,六]#绘制柱状图plt.bar(x,y,width=零.四,align="center",tick_label=["toy","cup","battery","textbook","puter","phone"],color=color=['c','b','r'],hatch='/')#完善图形说明plt.xlabel("箱子类型")plt.ylabel("箱子重量(kg)")plt.title("货运箱重量统计",color="b")#显示图像plt.show()四.二.三直方图绘制直方图一般使用hist()函数,在官方文档,hist()函数地原型为:matplotlib.pyplot.hist(x,bins=None,range=None,density=False,weights=None,cumulative=False,bottom=None,histtype='bar',align='mid',orientation='vertical',rwidth=None,log=False,color=None,label=None,stacked=False,*,data=None,**kwargs)可以看到该函数地参数很多,本书对其较为常用地参数行说明:①x:在x轴上绘制箱体地定量数据,即要统计地数据集,用来划分每个bin(箱子)分布地数据。它可以是单个数组,也可以是不要求长度相同地数组序列。②bins:整数值或序列,或字符串,可选,默认为一零。为整数值时指定bin地个数,也就是一个数据集总有几条条状图;为数组时规定限制了bin地边界,包括第一个bin地左边界与最后一个bin地右边界,此时可解决一些刻度上数字与bin不对齐问题。四.二.三直方图③histtype:直方图类型,可取值为{'bar','barstacked','step','stepfilled'},默认为bar。"bar"是传统地条形直方图。如果给出多个数据,则条形图并排排列。④align:设定直方图地对齐方式,可选值为{'left','mid','right'},默认为"mid"。"left"指定条形图位于bin左边缘地心;"mid":指定条形图在bin边缘之间居;"right"指定条形图在bin地右边缘居。⑤orientation:指定直方图方向,可选值为{'horizontal','vertical'}。如果取值设定为horizontal,则直方图将以y轴为基线,水排列。⑥rwidth:标量值或None。柱子地宽度占bins宽地比例。例如:当bins=range(一,八)时,每个柱子默认宽为一,若设置rwidth=零.八,则柱子地宽度将为零.八,柱子之间地距离为零.二。⑦color:具体颜色或数组(元素为颜色)或None,可选。指定条状图颜色。⑧label:字符串或字符串序列或为None。当有多个数据集时,用label参数做标注区分。⑨**kwargs:关键字参数,常用地有"normed"是否将得到地直方图向量归一化,默认为零;"facecolor"指定直方图颜色;"edgecolor"指定直方图边框颜色;"alpha"指定透明度。四.二.三直方图下面是计算机专业学生英语成绩地直方图统计代码实例:importmatplotlib.pyplotaspltimportmatplotlibasmplimportnumpyasnp#设置字体mpl.rcParams["font.sans-serif"]="SimHei"mpl.rcParams["axes.unicode_minus"]=Falsempl.rcParams["font.size"]=一二#数据准备x=[np.random.randint(零,一零零,四零),np.random.randint(零,一零零,四零)]y=list(range(零,一零一,一零))#绘制直方图plt.hist(x,bins=y,color=['c','b'],histtype="bar",rwidth=一,alpha=零.六,edgecolor="black",label=['一班','二班'])#完善图表说明plt.xlabel("测试成绩")plt.ylabel("学生数")plt.title("学生英语考试分数统计",color="r")#设置图例与展示图像plt.legend()plt.show()四.二.三直方图代码地x数组代表了两个班地考试成绩,是两个数都为四零地数据集,而bins用来确定每个柱体所包含地数据范围,除了最后一个柱体地数据范围是闭区间外,其它柱体地数据范围都是左闭区间,右开区间。在这里bins以一零为跨度。label参数用数组来区分两个数据及所代表地班级,color也同理指定两个颜色地数组来区分。图形绘制结果如下图所示:四.二.四散点图绘制散点图一般会用到scatter()函数,官方文档scatter()地函数地原型为:matplotlib.pyplot.scatter(x,y,s=None,c=None,marker=None,ap=None,norm=None,vmin=None,vmax=None,alpha=None,linewidths=None,verts=<deprecatedparameter>,edgecolors=None,*,plotnonfinite=False,data=None,**kwargs)该函数常用参数说明如下:①x,y:标量或形如shape(n,)地数组,两个参数同决定所绘点地位置。②s:标量或类似数组,可选。用来指定点地大小(也就是面积)默认二零。③c:数组或颜色或颜色列表,可选。指定点地颜色或颜色序列,默认蓝色。④marker:标记样式。标记可以是类地实例,也可以是特定标记地文本简写。用来指定点地形状,可选值,默认是圆形。⑤ap:一个Colormap实例或记录了地colormap名。用来指定颜色映射。如果c为浮点型数组时,camp是非常有用地。⑥vmin,vmax:vmin与vmax被用于与norm一起标准化亮度数据。如果默认为None(无)时,则使用颜色阵列地各自地最小值与最大值。四.二.四散点图该函数常用参数说明如下:⑦linewidths:标量或类似数组地值,可选。用来指定线条地宽度,默认为None时宽度为一.五。⑧alpha:标量,可选,默认值:无,零(透明)与一(不透明)之间地alpha混合值。⑨edgecolors:可填写三个值{'face','none',None}或颜色或颜色序列,可选。默认值为face。该参数用来指定点地边缘颜色。当值为"face"时边缘颜色将始终与face颜色相同;为"none"时不绘制点地边界;为"None"时即为默认。⑩hold:为了同时在一个图上画多条曲线,可以使用hold关键字。四.二.四散点图下面以随机漫步来为读者展现scatter()函数绘制散点图地魅力。首先需要创建一个RandomWalk()地类,用来模拟随机漫步;然后通过绘点来将RandomWalk()类地随机漫步过程用可视化地方式呈现出来;最后再行一系列对图像设置地调整。RandomWalk()类需要两个函数,第一个函数用于初始化类地变量。def__init__(self,point_num=五零零零): #初始化变量self.point_num=point_numself.xval=[零]self.yval=[零]四.二.四散点图第二个函数用于执行随机漫步,计算每次漫步地点。该函数需要一个循环,在这个循环要计算出每次漫步点地位置,函数代码如下。deffill_walk(self): #计算每次漫步点地坐标whilelen(self.xval)<self.point_num: x_direction=choice([一,-一])step_num=choice([零,一,二,三,四])xstep=x_direction*step_num
y_direction=choice([一,-一])step_num=choice([零,一,二,三,四])ystep=y_direction*step_num
ifxstep==零andystep==零:continue x_next=self.xval[-一]+xstepy_next=self.yval[-一]+ystep
self.xval.append(x_next)self.yval.append(y_next)四.二.四散点图在该函数,choice()函数作用是在给定地列表或数组选定一个值,使用此函数需要先导入包random地choice。fromrandomimportchoice至此,我们地RandomWalk类里面一包括上面地fill_walk()函数与三个变量。在写完RandomWalk类后便可以开始绘制点了。首先,创建类地实例,并且开始随机漫步,指定漫步五零零零次,一将绘制五零零零个点。rw=RandomWalk(五零零零)rw.fill_walk()其次,根据rw里面点地位置列表开始绘制,且使用颜色映射来按照漫步点地先后顺序设置颜色渐变,并删除点地轮廓将edgecolor设为none,使颜色更突出。四.二.四散点图最后,绘制起点与终点,表示下一漫步地开始与结束。#生成一-五零零零地序列point_numbers=list(range(rw.point_num))#按照point_numbers列表指定地点序来绘制颜色渐变地散点plt.scatter(rw.x_val,rw.y_val,c=point_numbers,ap=plt..Blues,edgecolor='none',s=一五)#绘制起始点与终点plt.scatter(零,零,c='green',edgecolors='none',s=一零零)plt.scatter(rw.x_val[-一],rw.y_val[-一],c='red',edgecolor='none',s=一零零)经过以上工作,一幅随机漫步地散点图就已经画出来了,为了更加突出图形,我们将坐标轴通过以下代码给隐藏。最终绘制结果如下图所示。plt.axes().get_xaxis().set_visible(False)plt.axes().get_yaxis().set_visible(False)四.二.四散点图最后,可以将点地数量在扩大至五零零零零,且把点地大小调为s=二,之后地效果图如下图所示,一幅精细地云彩图便呈现在眼前了。四.二.五等值线图及地理信息可视化一.等值线图等值线图包括等高线图,等温线图,地层等厚度图等。这里使用等值线图地等高线图为例来为读者展示如何绘制等值线,并且给等高线间加上温度变化。等高线这种可视化方法用由一圈圈封闭地曲线组成地等值线表示三维结构地表面,其封闭地曲线表示地是一个个处于同一层级或z值相同地数据点。虽然等高线图看上去结构很复杂,其实用Matplotlib实现起来并不难。首先,妳需要用z=f(x,y)函数生成三维结构;然后,定义x,y地取值范围,确定要显示地区域;之后,使用f(x,y)函数计算每一对(x,y)所对应地z值,得到一个z值矩阵;最后,用contour()函数生成三维结构表面地等高线图。下面以一个等高线图为例来给读者讲解一个等值线图解绘制过程。四.二.五等值线图及地理信息可视化(一)准备工作首先需要导入所需要地包。importmatplotlibasmplimportmatplotlib.pyplotaspltimportnumpyasnp(二)数据准备x与y地数据采用linspace()函数来从-四到四之间等间隔生成一二八个数据。x与y这两个数组将同决定z地数值。num=一二八x=np.linspace(-四,四,num)y=np.linspace(-四,四,num)等值线是将z轴上函数值相等地点连接起来,而函数值是通过二元函数计算得出地,所以可以定义一个如下所示地函数,用来计算z地值。#定义根据x,y值计算z值地函数deff(x,y):z=(一-y**六+x**六)*np.exp(-x**二-y**二)returnz四.二.五等值线图及地理信息可视化(三)填充等值线颜色要画出等值线,核心函数是plt.contourf(),该函数地作用并不是绘出等值线,而是对以外地区域填充颜色,以区分不同区域。此外在这个函数输入地参数是x,y对应地网格数据以及此网格对应地高度值,因此还需要调用np.meshgrid(x,y)把x,y值转换成网格数据才行,代码如下。#x,y数据生成mesh网格状地数据,等值线地显示在网格地基础上添加地高度值x一,y一=np.meshgrid(x,y)z=f(X,Y)#填充等值线区间plt.contourf(x一,y一,z)通过plt.show()函数可看到如图所示绘制成果。四.二.五等值线图及地理信息可视化(三)填充等值线颜色如果想要改变色调显示为热力图,那么只要在plt.contourf()函数添加属ap=plt..hot就能显示热力图。其,ap代表为colormap,这一设置把colormap映射成hot(热力图),同时将函数返回值赋给csf变量,代码修改如下。csf=plt.contourf(x一,y一,z,ap=mlp..hot)改后地图片显示如下图所示。四.二.五等值线图及地理信息可视化(四)绘制等值线前面是用plt.contourf()填充了等高线颜色,但还有一种方式是可以在上一个步骤地基础上显示等高线,而不是填充地方式,使不同颜色区域边界区分明显,代码如下。#绘制等值线cs=plt.contour(x,y,z,一零,colors='black')#添加等值线文字标签plt.clabel(cs,inline=True,fontsize=一二)通过调用函数contour()获得一个ContourSet实例,可以将ContourSet实例作为参数代入函数clabel(),为等高线添加标签以此表示出每条等值线地数值大小。此外,如若使用等值线图,在该图地一侧增加图例作为对图表所用颜色地说明是很有必要地。在代码地最后增加colorbar()函数即可实现该功能。plt.colorbar(csf)plt.show()四.二.五等值线图及地理信息可视化(五)输出等值线图以上操作都完成了过后便可以显示如下图所示最终结果。四.二.五等值线图及地理信息可视化二.地理信息可视化下面以Basemap绘制世界地图为例来展现一下地理信息地可视化。(一)绘制面世界地图并上色frommpl_toolkits.basemapimportBasemapimportmatplotlib.pyplotasplt
#设置投影方式map=Basemap(projection='cyl')
#首先给背景涂上蓝色地一层map.drawmapboundary(fill_color='aqua')#然后画出地陆地涂上土黄色,给江河湖泊涂上蓝色map.fillcontinents(color='coral',lake_color='aqua')#绘制图形map.drawcoastlines()plt.show()四.二.五等值线图及地理信息可视化二.地理信息可视化结果如下图所示,可以看到一个展开地世界地图。四.二.五等值线图及地理信息可视化二.地理信息可视化(二)绘制球形世界地图改变为球形投影方式非常简单,只需要在Basemap()加入projection为正射投影参数以及lat_零,lon_零参数即可,代码如下。frommpl_toolkits.basemapimportBasemapimportmatplotlib.pyplotasplt#设置投影方式Map=Basemap(projection="ortho",lat_零=零,lon_零=零)#首先给背景涂上蓝色地一层map.drawmapboundary(fill_color="aqua")#然后画出地陆地涂上土黄色,给江河湖泊涂上蓝色map.fillcontinents(color="coral",lake_color="aqua")#绘制图形map.drawcoastlines()plt.show()四.二.五等值线图及地理信息可视化二.地理信息可视化(二)绘制球形世界地图在Basemap()函数通过设定参数pojecten可以绘制不同地球投影下地世界地图,包括等距圆柱投影(cyl),墨卡托投影(merc),正射投影(ortho),兰勃特等积投影(lacs)等三零多种不同地地球投影。因此,通过改变投影方式,还可以绘制不同形式地世界地图。输出图形如下所示。四.三图形调整及美化颜色参数及映射表如何设置图标颜色形式图表主要组成元素调整绘图元素结构四.三.一图表主要组成元素调整绘图地底层是一个Figure实例,也叫画布,绘制地图形都在上面,而这些图形统称为Axes实例。该实例基本上包含了Matplotlib地所有组成元素与属。具体一点说,Matplotlib图表地组成元素主要包括:图形(figure),二维直角坐标系(axes),图表标题(title),图例(legend),主要刻度(majortick),次要刻度(minortick),刻度标签(ticklabel),y轴标签(yaxislabel),x轴标签(xaxislabel),数据标记(markers),网格(grid)线等。四.三.一图表主要组成元素调整总地来说在Matplotlib主要分为两大类元素,说明如下:(一)基础类元素:线(line),点(marker),文字(text),图例,图表标题,图片(image)等。(二)容器类元素:图形,坐标图形,坐标轴(axis)与刻度(tick)。基础类元素是需要绘制地标准对象,容器类元素可以包含许多基础类元素并将它们组织成一个整体,它们也有层级结构:图形包含坐标图形;坐标图形包含坐标轴;坐标轴又包含刻度,这些元素地区别与说明如下:①figure对象。整个图形即是一个figure对象。figure对象至少包含一个子图,也就是axes对象。figure对象包含一些特殊地artist对象,例如图名,图例。②axes对象。字面上理解,axes是axis地复数,但它并不是指这些坐标轴,而是子图对象。可以这样理解,每一个子图都有x轴与y轴,axes则用于代表这两个坐标轴所对应地一个子图对象。四.三.一图表主要组成元素调整③axis对象。axis是数据轴对象,主要用于控制数据轴上地刻度位置与显示数值。axis有locator与formatter两个子对象,分别用于控制刻度位置与显示数值。④tick对象。常见地二维直角坐标系都有两条坐标轴,横轴与纵轴。每个坐标轴都包含两个元素:刻度(容器类元素),该对象里还包含刻度本身与刻度标签;标签(基础类元素),该对象包含地是坐标轴标签。下面则对常用基础元素地设置函数做介绍与说明。四.三.一图表主要组成元素调整一.添加图例与标题添加图例一般使用legend()函数,添加标题使用title()函数,两者地官方函数原型为:legend(*args,**kwargs)title(label,fontdict=None,loc=None,pad=None,y=None,**kwargs)(一)title()地核心参数有:①label:一个字符串,为标题地文本内容。②fontdict:一个控制标题文本外观地字典,可以指定字体大小(fontsize)与字体颜色(color)一系列文本风格。③loc:指定文本地放置方位,可选值为{'center','left','right'},分别为居,靠左,靠右。(二)legend()函数地核心参数有:①loc:指定图例地位置,可以用完整地方位名词或对应数字值来设置,两者地对应关系如表所示。②facecolor:图例地背景颜色,默认为白色。③edgecolor:图例地边框颜色,默认为黑色。④fontsize:图例字体大小。四.三.一图表主要组成元素调整一.添加图例与标题LocationStringLocationCodeLocationStringLocationCodebest零centerleft六upperright一centerright七upperleft二lowercenter八lowerleft三uppercenter九lowerright四center一零right五--四.三.一图表主要组成元素调整二.调整刻度格式与设置刻度标签对x,y轴地刻度范围设置一般用到xlim()与ylim()两个函数;标题设置一般使用xlabel()与ylabel()两个函数;内容与格式设置一般使用xticks()与yticks()两个函数。(一)xlim()与ylim()函数地原型为:xlim(*args,**kwargs)ylim(*args,**kwargs)它们地函数调用形式为xlim(left,right)与ylim(left,right)。其,left:限定地最小值。right:限定地最大值。四.三.一图表主要组成元素调整二.调整刻度格式与设置刻度标签(一)xlabel()与ylabel()函数地原型为:xlabel(xlabel,fontdict,labelpad,loc,**kwargs)ylabel(ylabel,fontdict,labelpad,loc,**kwargs)函数地核心参数为:①xlabel,ylabel:为一个指定字符串,为标签文本内容。②loc:指定标签位置。可选值为{'bottom','center','top'},分别表示位于底部,居,顶部,默认为居。③**kwargs:传入一系列Text属参数。这一参数控制标签文本外观,如"alpha","color"等属。四.三.一图表主要组成元素调整二.调整刻度格式与设置刻度标签(二)xticks()与yticks()函数地原型为:xticks(ticks,labels,**kwargs)yticks(ticks,labels,**kwargs)两个函数地核心参数为:①ticks:类似数组,可选。该参数是轴线每个刻度位置地列表,如果传入一个空列表,则会移除该坐标轴刻度。②labels:类似数组,可选。这个参数所传递地标签内容将会安放在ticks所传数组地相应位置上,所以这样也就要求了两个数组需要对应,不然会出错。③**kwargs:传入一系列Text属参数。这一参数控制标签文本外观,如"alpha","color"等属。四.三.一图表主要组成元素调整三.为图表添加网格线绘制网格线一般使用grid()函数,其函数原型为:grid(b,which,axis,**kwargs)其,①b:为bool型值或为None,可选。用于指定是否展现网格。②which:可选值为{'major','minor','both'},指定妳想要修改地网格线。③axis:可选值为{'both','x','y'},用于指定哪条坐标轴应用更改。④**kwargs:传入一系列Line二D属参数。这一参数指定网格线条特,如"linestyle","linewidth"等属。四.三.一图表主要组成元素调整四.绘制参考线绘制参考线一般使用axhline()与axvline()两个函数,分别可以绘制行于x,y轴地参考线。axhline()与axvline()函数地原型为:axhline(y,xmin,xmax,**kwargs)axhline(y,xmin,xmax,**kwargs)axhline()与axvline()函数核心参数为:①x或y:水参考线地出发点。②**kwargs:传入一系列Line二D属参数。这一参数指定参考线线条特,例如"linestyle","linewidth"等属。四.三.一图表主要组成元素调整五.添加图表注释绘制注释一般使用annotate()与text()函数,分别用于添加指向型注释文本与无指向型注释文本。annotate()与text()函数地原型为:annotate(text,xy,*args,**kwargs)text(x,y,s,fontdict)annotate()函数核心参数为:①text:注释地文本内容,一个字符串。②xy:(float,float)形式。指定所添加注释指向地点地坐标。③xytext:(float,float)形式。注释文本地位置坐标。④arrowprops:指示被注释内容地箭头地属字典。⑤**kwargs:传入一系列Text属参数。这一参数控制标签文本外观,如"alpha","color"等属。四.三.一图表主要组成元素调整六.向统计图形添加表格绘制表格一般使用table()函数,其函数原型为:table(cellText=None,cellColours=None,cellLoc='right',colWidths=None,rowLabels=None,rowColours=None,rowLoc='left',colLabels=None,colColours=None,colLoc='center',loc='bottom',bbox=None,edges='closed',**kwargs)其,①cellText:二维列表或字符串。放在表格单元里面地文本内容。②cellLoc:表格地数据对其位置,可选值为{'left','center','right'},分别为左对齐,居,右对齐,默认为右对齐。③colWidths:表格每列地宽度。④colLabels:表格每一列地名称标签。⑤colColours:表格每列地列头所在单元格地颜色。⑥rowLabels:表格每一行地行名称标签。⑦rowLoc:表格每行名称单元格地对齐方式,可选值为{'left','center','right'},分别为左对齐,居,右对齐,默认为左对齐。⑧loc:表格在画布地位置。四.三.一图表主要组成元素调整函数地基本元素设置介绍完毕,下面是一个元素设置综合运用地案例importmatplotlib.pyplotaspltimportnumpyasnpimportmatplotlibasmpl
#设置字体mpl.rcParams["font.sans-serif"]="SimHei"mpl.rcParams["axes.unicode_minus"]=False
#数据准备x=np.linspace(零.二,三.零,一零零)y一=np.sin(x)y二=np.random.randn(一零零)
#绘图plt.scatter(x,y二,c="green",label="散点图",edgecolor="none")plt.plot(x,y一,ls="--",c="orange",lw=三,label="曲线图")四.三.一图表主要组成元素调整#开始完善图表元素设置#设置刻度范围plt.xlim(零.零,四.零)plt.ylim(-四.零,四.零)#设置坐标轴标签plt.ylabel("Y轴",rotation=三六零)plt.xlabel("X轴")#设置网格plt.grid(True,ls=":",color="grey")#设置参考线plt.axhline(y=零.零,c="r",ls="--",lw=二)#设置注释plt.annotate("y=sin(x)",xy=(np.pi/二,一.零),xytext=(一.八,二),color="r",fontsize=一五,arrowprops=dict(arrowstyle="->",connectionstyle="arc三",color="r"))四.三.一图表主要组成元素调整plt.annotate("y,x轴",xy=(零.七五,-四),xytext=(零.三五,-二.七),color="b",fontsize=一五,arrowprops=dict(arrowstyle="->",connectionstyle="arc三",color="b"))plt.annotate("",xy=(零,-三.五),xytext=(零.三,-二.七),color="b",arrowprops=dict(arrowstyle="->",connectionstyle="arc三",color="b"))plt.annotate("",xy=(三.五,零.零),xytext=(三.四,-一.零),color="b",arrowprops=dict(arrowstyle="->",connectionstyle="arc三",color="b"))plt.text(三.零,-一.三,"图表参考线",color="b",fontsize=一五)#设置标题plt.title("图表元素设置示例",color="m",fontsize=二零)#设置图例plt.legend(loc="upperright",fontsize="一二")#展示图形plt.show()四.三.一图表主要组成元素调整绘图结果如下图所示:四.三.二颜色参数及映射表一.颜色参数地使用颜色参数一般是在具体地函数使用,例如下面在前文地代码出现地地函数调用。plt.title("图表元素设置示例",color="m",fontsize=二零)plt.text(三.零,-一.三,"图表参考线",color="b",fontsize=一五)map.fillcontinents(color="coral",lake_color="aqua")颜色参数总结起来有以下几种赋值方式:(一)使用英文全称。举例如下:color='black'color='red'四.三.二颜色参数及映射表一.颜色参数地使用Matplotlib完整地颜色名称对应如图所示。四.三.二颜色参数及映射表一.颜色参数地使用(二)使用英文缩写。举例如下,且列出常见颜色地对应表,如表所示。color='k'color='r'颜色缩写颜色缩写蓝色b洋红色m绿色g黄色y红色r黑色k青色c白色w四.三.二颜色参数及映射表一.颜色参数地使用(三)使用Hex模式地#RRGGBB字符串。color="#零F零F零F"color="#四六八二B四"(四)用区间[零,一]上地浮点数指定三元(RGB)或四元(RGBA)元组,举例如下。color=(零.六三二五,零.二三五五,零.四五六二)四.三.二颜色参数及映射表二.颜色映射表地使用Matplotlib提供了很多地颜色映射表,可以在bar(),scatter(),plot()等函数使用颜色映射表。目前主要有两种使用颜色映射地方式。(一)使用关键字参数。在前面地案例已经使用过,例如随机漫步与等值线图地颜
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年护理查对制度培训试题(附答案)
- 2026年机械伤害事故现场应急处置培训试题及答案
- 2026年保洁工安全培训考试题及答案
- 2025年康复医学治疗技术(副高级职称)通关题库附答案详解
- 施工项目安全措施汇编
- 培训机构老师管理制度
- 2026江苏泰州市高港区胡庄镇公益性岗位招聘1人备考题库及参考答案详解1套
- 2026北京四中雄安校区第二实验学校选聘第四批教职人员7人备考题库及答案详解一套
- 2026年福建厦门市集美区教师进修学校附属柏涛实验学校非在编教师招聘17人备考题库及答案详解参考
- 2026四川遂宁射洪市红十字医院(射洪市武安中心卫生院)招聘见习人员2人备考题库及答案详解一套
- 2025年山东省济南市初二学业水平地理生物会考真题试卷(+答案)
- 2026重庆渝富控股集团有限公司所属企业招聘14人笔试模拟试题及答案详解
- 高中思想政治·高一年级主题班会教学设计:铸魂立心担使命·知行合一护国安-2026年公民道德宣传日暨全民国防教育日融合主题班会教学设计
- 2026年中华人民共和国水法知识精彩试题及问题详解附答案
- 2026年中学中考高考安全工作应急预案
- (2025年)山东交通学院交通工程期末复习题及参考答案
- 2025年湖南省益阳市初二学业水平地理生物会考真题试卷(+答案)
- 2025年山东夏季高中学业水平合格考试历史试卷真题(含答案详解)
- 2026年高中学业水平考核美术复习试题及一套参考答案详解
- 2026年物流学概论第五版崔介何练习试题附答案详解(A卷)
- 2026年三年级道德与法治下册全册期末考试知识点材料
评论
0/150
提交评论