版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第九章数据可视化
授课时间:***授课老师:***本章知识点导图目录9.1Matplotlib简介 9.2Matplotlib绘图基础 9.3设置动态参数 9.4常用图形的绘制 Matplotlib简介 Matplotlib是基于NumPy的2D绘图库,是Python语言应用最广的绘图工具包之一。Matplotlib绘图支持各种平台,功能强大,简单易用,仅需要几行代码,便可以生成直方图、折线图、条形图、饼图、散点图、雷达等图表。通过调节绘图函数的参数,可以简单的实现图形的定制,因而在科学计算领域得到了广泛的应用,是计算结果可视化的重要工具。Matplotlib有多个子模块,其中Pyplot子模块主要用于数据图形,是应用最广的子模块。因此,本书重点介绍Pyplot子模块的应用。常用的导入Matplotlib及其pyplot模块命令分别为:importmatplotlibasmplimportmatplotlib.pyplotasplt9.1
Matplotlib简介9.1.1Matplotlib图层结构9.1.2显示中文字体9.1.1Matplotlib图层结构使用Matplotlib绘制的图形包含容器层、辅助显示层和图像层。绘图时,必须按照这个顺序来展示数据,否则图形不会正确显示。9.1.1Matplotlib图层结构1.
容器层由Canvas对象(画板)、Figure对象(画布)、Axes对象(绘图区和坐标系)组成。(1)Canvas是最底层系统层,相当于画板,是放置画布(Figure)的工具,Canvas对象无须用户创建。(2)Figure在Canvas之上,相当于画布,可以包含多个图表,使用plt.figure()函数创建。(3)Axes位于Figure之上,指Figure中的单个图表,一个Figure中可以有一个或多个Axes,即一张画布中可以有一个或多个图表。Axes对象充当画布中绘图区域的角色,它拥有独立的坐标系,可以通过plt.subplots()函数来分割画布,得到若干个坐标系/绘图区。9.1.1Matplotlib图层结构2.辅助显示层辅助显示层是指Axes绘图区域中除所绘图形之外的,为图形增加相关显示和描述功能的辅助元素,主要包括x轴和y轴刻度、坐标轴标题、图形标题、图形网格线、图例等。通过对该层的设置,可以提高图形的可读性,使图像显示更加直观,更容易被用户理解,但又不会对图像本身产生实质的影响。9.1.1Matplotlib图层结构3.图像层图像层指在Axes绘图区内,使用绘图函数绘制出的图像,如折线图、散点图、饼图等。图像层和辅助显示层所包含的内容都位于Axes对象之上,都属于图表的元素。9.1.2显示中文字体1.设置字体importmatplotlib.pyplotaspltplt.rcParams['font.family']='MicrosoftYaHei'plt.rcParams['font.sans-serif']=['MicrosoftYaHei']plt.rcParams['font.size']=16timMatplotlib是英文库,默认不支持中文字符的显示,无法正常显示中文以及一些符号。为了在Matplotlib中正常显示中文,需要人工修改Matplotlib的rc配置文件来设置Matplotlib支持的中文字体作为默认字体,代码如下:rcParams表示rc配置文件参数,参数font.family表示字体类型,font.sans-serif表示无衬线字体类型,font.size表示字体大小,“MicrosoftYaHei”为微软雅黑字体9.1.2显示中文字体2.中文字体及英文表示表9-1常用中英文字体的中英文对照中文字体名称字体英文对照宋体SimSun黑体SimHei微软雅黑MicrosoftYaHei仿宋FangSong楷体KaiTi隶书LiSu幼圆YouYuan华文细黑STXihei华文楷体STKaiti华文仿宋STFangsong宋体SimSun9.2Matplotlib绘图基础 9.2.1绘图的基本步骤9.2.2创建画布9.2.3添加画布内容9.2.4添加子图9.2.5图形的保存9.2.1绘图基本步骤(1)导入库(2)创建画布对象figure:fig=plt.figure()(3)准备绘图数据,可以从文件读取数据,也可以使用函数生成的数据、或者通过计算得到的数据。(4)设置坐标轴的大小、刻度、坐标轴的上下限,也可以直接使用默认值。(5)调用绘图函数绘制图形。比如,plot(x,y)函数可以绘制折线图,其中x为数据点的x轴坐标序列,y为数据点的y轴的坐标序列,还可以同时设置坐标轴刻度、线条的样式、颜色等图形参数,也可以直接使用默认值。(6)添加图形注释,包含图名、坐标名称、图例、文字说明等,也可以默认。(7)使用plt.show()显示图形。9.2.1绘图基本步骤下面的代码使用Matplotlib绘制简单折线图,运行结果图如图9-3所示。In[1]:importmatplotlib.pyplotasplt...:plt.rcParams['font.family']='MicrosoftYaHei'...:plt.rcParams['font.sans-serif']=['MicrosoftYaHei']...:fig=plt.figure()#创建画布...:#定义绘图数据...:x=[1,2,3,4,5,6,7,8,9]...:y=[4,8,9,7,8,12,23,24,30]...:plt.xlabel('x轴')#设置x轴名称...:plt.ylabel('y轴')#设置y轴名称...:plt.grid()#显示网格线...:plt.title("plot函数绘制折线图示例")#设置图形标题...:plt.plot(x,y)#使用plot()函数绘制图形...:plt.show()#显示图形图9-3使用plot()绘制的折线图示例9.2.2创建画布画布是一个Figure对象,使用figure()函数创建。Figure对象代表新的绘图区域,并为当前的绘图对象。plt.figure(num=None,figsize=None,dpi=None,facecolor=None,edgecolor=None,clear=False)num:Figure对象的编号,可选,默认由系统自动分配,如果当前num的Figure对象已经存在,那么激活该Figure对象并引用,否则生成一个新的Figure对象。figsize:设置画布的尺寸,以英寸为单位,默认值为(6.4,4.8)。dpi:设置图像分辨率,默认值为100。facecolor:设置画布背景颜色。edgecolor:设置画布边线颜色。clear:如果num代表的Figure画布已经存在,是否要将该画布清空。9.2.2创建画布【例9-1】创建一个尺寸为8×6的画布,分辨率为100,背景色为灰色,边框线为黑色。In[1]:importmatplotlib.pyplotasplt...:plt.figure(figsize=(4,3),dpi=100,facecolor='gray',edgecolor='white')#创建画布...:plt.plot()...:plt.show()9.2.3添加画布内容为了增加绘制图形的可读性,可设置画布的一些属性,如标题、坐标轴标签、坐标轴名称、网格线、图例等,还可以设置坐标轴的取值、坐标轴刻度等。需要注意的是,设置属性和绘制图形是没有先后顺序的,唯独添加图例(plt.legend())必须要在绘制图形之后。9.2.3添加画布内容表9-3Pyplot子模块绘制图形常用属性设置函数函数说明plt.title()设置标题,指定标题名称、位置、颜色、字体大小等参数plt.grid()设置网格线,可以设置网格线的颜色、样式、粗细等plt.text(x,y,s,fontdic)在坐标(x,y)处添加文本注释plt.legend(array,loc)添加图形图例plt.xlabel()设置当前x轴标签,可以指定位置、颜色、字体等参数plt.ylabel()设置当前y轴标签,可以指定位置、颜色、字体等参数plt.xlim(xmin,xmax)设置当前x轴取值范围plt.ylim(ymin,ymax)设置当前y轴取值范围plt.xtick(ticks,labels)设置当前x轴刻度位置的标签和取值plt.ytick(ticks,labels)设置当前y轴刻度位置的标签和取值plt.xscale()设置x轴缩放plt.yscale()设置y轴缩放plt.autoscale()轴视图自动缩放在表9-3的属性设置函数中,均可以使用参数loc来指定位置,参数color来指定颜色,参数fontsize来指定字体大小。9.2.3添加画布内容b:是否显示网格线,布尔值,可选参数。which:设置网格线显示的尺度,可选参数
,可取值为'major'、'minor'或'both',其中'major'为主刻度、'minor'为次刻度,默认为'both',即主刻度和次刻度均显示。axis:设置网格线显示的轴,可选参数,可取值为‘both’、‘x’或‘y’,默认为'both',表示x轴和y轴均显示。linestyle:设置网格线的样式,可取的样式有'-'
、
'--'、
'-.'
、
':',默认为'-'
。linewidth:设置网格线宽度。plt.grid()函数常用参数的含义如下:9.2.3添加画布内容plt.legend()添加图例函数中的loc参数有以下几种取值:0:'best'(默认值)自动选择最佳位置。1:'upperright'右上角。2:'upperleft'左上角。3:'lowerright'右下角。4:'lowerleft'左下角。5:'right'右侧。6:'centerleft'左侧中央。7:'centerright'右侧中央。8:'lowercenter'底部中央。9:'uppercenter'顶部中央。10:'center'中央。9.2.3添加画布内容【例9-2】绘制身高年龄对照和身高体重对照的曲线图形,并设置图形的属性。In[1]:importmatplotlib.pyplotasplt...:plt.figure()...:age=[1,2,3,4,5,6,7,8,9,10]...:height=[75.0,87.2,95.6,103.1,110.2,116.6,122.5,128.5,134.1,140.1]...:weight=[10.05,12.54,14.65,16.64,18.98,21.26,24.06,16.64,27.33,30.46]...:plt.title("年龄身高对照图",loc="center",fontsize=16)...:plt.xlim(0,12)...:plt.ylim(0,160)...:plt.xticks([1,2,3,4,5,6,7,8,9,10,11,12],fontsize=14)...:plt.yticks([20,40,60,80,100,120,140,160],fontsize=14)...:plt.xlabel("年龄(岁)",fontsize=14)...:plt.ylabel("身高(cm)/体重(kg)",fontsize=14)...:plt.grid(which='major')...:plt.plot(age,height)...:plt.plot(age,weight)...:plt.legend(["age-height",'age-weight'],fontsize=12,loc='upperleft')...:plt.show()9.2.4添加子图在Matplotlib中,可以将画布划分成多个部分,在不同的部分添加子图。表9-4创建子图及子图相关函数函数说明figure.add_subplot(nrows,ncols,plotnum)在全局绘图区域中创建并选中一个子图对象nrows:绘图区域中子图的行数ncols:绘图区域中子图的列数plotnum:当前子图的编号plt.subplot(nrows,ncols,plotnum)与figure.add_subplot()类似,但使用subplot()会删除画板上已有的图。plt.subplots(nrows,ncols)划分画布,创建一组子图,将整个绘图区划分成nrows行、ncols列个子图。plt.subplots_adjust(wspace=0,hspace=0)调整子图之间的间距wspace:设置子图之间空间的宽度量hspace:设置子图之间空间的高度量使用figure.add_subplot(),plt.subplot(),plt.subplots()函数创建子图,都会将全局绘图区域分成nrows行ncols列个子图,不同的是figure.add_subplot()和plt.subplot()函数一次只添加一个子图,而plt.subplots()函数会同时创建多个子图9.2.4添加子图将全局绘图区域分成nrows行ncols列个子图后,会按照从左到右、从上至下的顺序对每个区域进行编号,左上的子绘图区域编号为1,plotnum参数指定创建的子图Axes对象所在的区域的编号。figure.add_subplot(2,3,4)和plt.subplot(2,3,4)也可以分别写成figure.add_subplot(234)和plt.subplot(234)9.2.4添加子图函数说明axes.plot()当前子图区域绘制折线图axes.legend()当前子图添加图形图例axes.set_title()当前子图添加图形标题axes.set_xlabel()设置当前子图x轴标签axes.set_ylabel()设置当前子图y轴标签axes.set_xlim()设置当前子图x轴取值范围axes.set_xlim()设置当前子图y轴取值范围axes.set_xticks()设置当前子图x刻度位置的标签和取值axes.set_yticks()设置当前子图y刻度位置的标签和取值表9-5Pyplot子模块绘制图形常用属性设置函数9.2.4添加子图【例9-3】在同一张画布上,创建2行2列的子图,分别绘制sin(x)、cos(x)、sin(5x)、cos(5x)取值在[0,2
]区间的图形。方法一:使用figure.add_subplot()函数In[1]:importmatplotlib.pyplotasplt...:importNumPyasnp...:x=np.linspace(0,2*np.pi,100)...:y1=np.sin(x)...:y2=np.cos(x)...:y3=np.sin(5*x)...:y4=np.cos(5*x)...:fig=plt.figure(figsize=(8,6))...:ax1=fig.add_subplot(2,2,1)...:ax1.set_title('sin(x)')#设置子图标题...:ax1.plot(x,y1)...:ax2=fig.add_subplot(2,2,2)...:ax2.set_title('cos(x)')#设置子图标题...:ax2.plot(x,y2)...:ax3=fig.add_subplot(2,2,3)...:ax3.set_title('sin(5x)')#设置子图标题...:ax3.plot(x,y3)...:ax4=fig.add_subplot(2,2,4)...:ax4.set_title('cos(5x)')#设置子图标题...:ax4.plot(x,y4)...:plt.show()9.2.4添加子图方法二:使用plt.subplot()函数In[1]:importmatplotlib.pyplotasplt...:importNumPyasnp...:x=np.linspace(0,2*np.pi,100)...:y1=np.sin(x)...:y2=np.cos(x)...:y3=np.sin(5*x)...:y4=np.cos(5*x)...:fig=plt.figure(figsize=(8,6))...:ax1=plt.subplot(2,2,1)...:ax1.set_title('sin(x)')#设置子图标题...:ax1.plot(x,y1)...:ax2=plt.subplot(2,2,2)...:ax2.set_title('cos(x)')#设置子图标题...:ax2.plot(x,y2)...:ax3=plt.subplot(2,2,3)...:ax3.set_title('sin(5x)')#设置子图标题...:ax3.plot(x,y3)...:ax4=plt.subplot(2,2,4)...:ax4.set_title('cos(5x)')#设置子图标题...:ax4.plot(x,y4)...:plt.show()方法一和方法二运行结果一样9.2.4添加子图使用语句“fig,axes=plt.subplots(2,3)”,返回包含了已生成子图Axes对象的NumPy数组。数组axes类似于二维数组进行索引,如axes[1,2]。
In[1]:importmatplotlib.pyplotasplt...:importnumpyasnp...:fig,axes=plt.subplots(2,3,figsize=(8,6))...:x=np.arange(-2,2,0.01)...:n=1#n表示子图编号...:foriinrange(2):...:forjinrange(3):...:axes[i,j].plot(x,np.power(x,n))...:titletext='x^'+str(n)#子图标题文本...:axes[i,j].set_title(titletext)#设置子图标题
...:n=n+1...:...:plt.subplots_adjust(wspace=0.3,hspace=0.3)9.2.5图形的保存通常使用plt.savefig()函数保存绘制的图形,同时可以设置图形的分辨率、边缘的颜色等参数savefig(fname,dpi,facecolor,edgecolor,format)filename:表示要保存的文件名或文件路径的字符串,文件的扩展名可以是png、pdf等。dpi:图像分辨率,默认为100。facecolor、edgecolor:子图之外的图形背景和边框颜色,默认为白色。format:图形输出格式,支持的格式有pdf,png,jpeg,jpg,,svg,svgz,tif,tiff等。plt.savefig('x的n次幂对比图.png',dpi=200,facecolor='gray')如将例9-4生成的图片以文件名“x的n次幂对比图”、分辨率为200、背景色为灰色保存到本地,代码如下:9.3设置动态参数
在pyplot模块中,可以使用rc配置文件来自定义图形的各种属性,称之为rc配置或rc参数(rcParams)。主要包括线条宽度、颜色、样式、坐标值标记的形状、大小等,rc参数设置顺序不分先后。表9-6线条和坐标值标记常用参数及其作用参数作用取值linestyle设置线条形状“-”“--”“-.”“:”4种,默认为“-”linewidth设置线条宽度数值型数据,默认为1.5color设置线条或数据点的颜色颜色英文名称或英文简称或RGB色marker设置坐标值标记形状“o”“.”“*”等20种,默认为Nonemarkersize设置标记的大小数值型数据,默认为1markeredgewidth设置标记边缘的宽度数值型数据,默认1.5markeredgecolor设置标记边缘的颜色颜色英文名称或英文简称或RGB色markerfacecolor设置标记内部的颜色颜色英文名称或英文简称或RGB色9.3设置动态参数
表9-7linestyle线条样式参数的取值及含义linestyle参数取值含义linestyle参数取值含义"-"或"solid"实线"-."或"dashdot"点划线"--"或"dashed"虚线":"或"dotted"虚线9.3设置动态参数
marker坐标值标记形状通常在绘制直线、曲线图函数plot()、散点图函数scatte()和误差图函数errorbar()上应用,Matplotlib.pyplot提供多达40个marker标记的样式供选择,图表中常用的取值及标记说明见表9-8。表9-8marker坐标值标记形状参数的取值标记属性值标记说明标记属性值标记说明"o"圆圈"H"或"h"六边形"."圆点"8"八边形"*"星号"∨"倒三角"+"加号"∧"正三角"x"X"<"左三角"_"水平线">"右三角"|"竖线"1"向下Y"s"正方形"2"向上Y"D"或"D"菱形"3"向左Y"p"五边行"4"向右Y9.3设置动态参数
color颜色参数常用的颜色取值见表9-9。表9-9颜色参数常用的颜色取值color参数取值颜色说明color参数取值颜色说明"b"或"blue"蓝色"m"或"magenta"品红"g"或"green"绿色"y"或"yellow"黄色"r"或"red"红色"k"或"black"黑色"c"或"cyan"蓝绿色"w"或"white"白色除了设置线条、坐标值标记的rc参数外,还可以设置文本、散点图、坐标轴标签、图例、图片、图像保存等rc参数。9.3设置动态参数
设置rc参数主要有以下三种方法:方法1:使用rcParams设置plt.rcParams['lines.linestyle']='-.'plt.rcParams['lines.color']='g'plt.rcParams['lines.marker']='D'方法2:绘图函数内设置plt.plot(x,y,color='red',linestyle='--',linewidth=2,marker='*',markersize=10)方法3:绘图函数内简化设置,将取值为符号类型的参数放在一个字符串内,不分先后顺序,数值类型的参数分别单独设置plt.plot(x,y,'r*--',linewidth=2,markersize=15)9.3设置动态参数
方法1:使用rcParams设置In[1]:importmatplotlib.pyplotasplt...:importnumpyasnp...:#定义数据...:t=np.arange(0,np.pi,0.1)...:x=np.sin(3*t)*np.cos(t)...:y=np.sin(3*t)*np.sin(t)...:#设置线条和数值标记的rc参数...:plt.rcParams['lines.linestyle']='--'...:plt.rcParams['lines.linewidth']=2...:plt.rcParams['lines.marker']='*'...:plt.rcParams['lines.markersize']='15'...:plt.plot(x,y)...:plt.show()9.3设置动态参数
方法2:绘图函数内设置In[1]:importmatplotlib.pyplotasplt...:importnumpyasnp...:#定义数据...:t=np.arange(0,np.pi,0.1)...:x=np.sin(3*t)*np.cos(t)...:y=np.sin(3*t)*np.sin(t)...:#绘图,并设置rc参数...:plt.plot(x,y,linewidth=2,linestyle='--',markersize=15,marker='*')...:plt.show()9.3设置动态参数
方法3:绘图函数内简化设置In[1]:importmatplotlib.pyplotasplt...:importnumpyasnp...:t=np.arange(0,np.pi,0.1)...:x=np.sin(3*t)*np.cos(t)...:y=np.sin(3*t)*np.sin(t)...:#绘图,并设置rc参数...:plt.plot(x,y,'*--',linewidth=2,markersize=15)...:plt.show()9.4常用图形的绘制
9.4.1绘制折线图9.4.2绘制条形图9.4.3绘制直方图9.4.4绘制散点图9.4.5绘制饼图9.4.6绘制箱线图9.4.1绘制折线图使用plt.plot()函数绘制折线图和各种数学函数图形,其常用参数见表9-10。表9-10plt.plot()函数常用参数参数名称作用取值x,yX轴和Y轴对应的数据接收列表类型数据linestyle线条样式取值见表9-7linewidth线条宽度数值型数据,默认为1.5color线条颜色常用颜色取值见表9-9marker坐标值标记形状,取值见表9-8markersize设置标记大小数值型数据,默认为1markeredgewidth设置标记边缘宽度数值型数据,默认1.5markeredgecolor设置标记边缘颜色常用颜色取值见表9-9markerfacecolor设置标记内部颜色常用颜色取值见表9-9alpha设置标记的透明度0~1的浮点数9.4.1绘制折线图【例9-6】表是A、B两个地区1~12月的降雨量,请根据数据绘制降雨量对比折线图。月份地区123456789101112A9.62.932.81330.666.157.734.132.930.82.62.9B51.772.295.881.529.99977.7114.216.990.54617.9In[1]:importmatplotlib.pyplotasplt...:importnumpyasnp...:plt.figure(figsize=(8,5))...:x=np.arange(1,13,1)...:yA=[9.6,2.9,32.8,13,30.6,66.1,57.7,34.1,32.9,0.8,2.6,2.9]...:yB=[51.7,72.2,95.8,81.5,29.9,99,77.7,114.2,16.9,90.5,46,17.9]...:plt.plot(x,yA,'r-.o',markersize=10)#绘制折线图...:plt.plot(x,yB,'b-*',markersize=10)#绘制折线图...:plt.title("A、B两区降雨量对比图")...:plt.xticks([1,2,3,4,5,6,7,8,9,10,11,12])...:plt.xlabel("月份")...:plt.ylabel("降雨量",)...:plt.legend(['A区','B区'],loc='upperright')...:plt.show()9.4.2绘制条形图形图(BarChart)也称柱状图,是一种以长方形的长度为变量的统计图。根据条形图中长方形的长度,能够一眼看出各个数据的大小,比较数据之间的差别,通常用于较小的数据集的分析。按照排列方式的不同,可分为纵式条形图和横式条形图。使用plt.bar()函数绘制纵向条形图,其常用的参数见表9-12。表9-12plt.bar()函数常用参数参数名称作用取值xX轴坐标接收列表类型数据height条形高度数值型数据width条形宽度0~1的浮点数,默认0.8botton条形的起始位置也是y轴的起始坐标align条形的中心位置“center”,"lege"边缘color条形的颜色常用颜色取值见表9-9edgecolor边框的颜色常用颜色取值见表9-9tick_label下标的标签元组或列表类型的字符组合orientation设置条形方向竖直:"vertical",水平:"horizontal,默认为竖直可以设置orientation="horizontal",并将width与height参数的数据交换也可以使用plt.barh()函数,绘制水平方向的条形图。9.4.2绘制条形图【例9-7】表中A~G7个店铺某商品的目标销售额和实际销售额数据。请根据表中数据绘制目标销售额和实际销售额的对比条形图。店铺名地区A店铺B店铺C店铺D店铺E店铺F店铺G店铺销售额目标40385030403053实际销售额36424832363158n[1]:importmatplotlib.pyplotasplt...:importNumPyasnp...:x=np.arange(1,8,1)...:target=[40,38,50,30,40,30,53]...:asales=[36,42,48,32,36,31,58]...:shopname=['A店铺','B店铺','C店铺','D店铺','E店铺','F店铺','G店铺']...:plt.figure()...:bar_width=0.3#条形宽度...:plt.bar(x,height=target,width=bar_width,color='r')#绘制条形图...:plt.bar(x+0.35,height=asales,width=bar_width,color='y')...:plt.title('各店铺销售目标与实际销售额对比图')...:plt.xlabel('店铺')...:plt.ylabel('销售额')...:plt.xticks(np.arange(1,8,1),shopname)...:plt.yticks(np.arange(10,90,10))...:plt.ylim(0,80)...:plt.legend(['目标销售额','实际销售额'])...:plt.show()9.4.3绘制直方图直方图(Histogram)也称质量分布图,一般用横轴表示数据范围,纵轴表示分布情况,使用plt.hist()函数绘制纵向直方图,其常用的参数见表9-14。表9-14plt.hist()函数常用参数参数名称作用取值x绘图数据接收列表类型数据bins直方图的柱数整数、列表或一维数组等,默认为10。若设置为一个整数,则根据绘图数据自动划分;若设置为列表或一维数组,则根据其中的数据划分facecolor直方图颜色常用颜色取值见表9-9edgecolor直方图边框颜色常用颜色取值见表9-9histtype直方图类型‘bar’,‘barstacked’,‘step’,‘stepfilled’rwidth条形宽度浮点数alpha透明度0~1的浮点数9.4.3绘制直方图【例9-8】下面是某课程43名学生的考试分数,请根据考试分数绘制各成绩段人数分布直方图。78,70,69,88,88,73,81,91,96,79,78,67,79,82,86,67,95,64,84,85,76,64,75,69,86,90,98,78,85,87,90,86,75,85,63,79In[1]:importmatplotlib.mlabasmlab...:importnumpyasnp...:importmatplotlib.pyplotasplt...:partition=[0,10,20,30,40,50,60,70,80,90,100]#划分成绩段...:ages=[78,70,55,88,68,73,81,91,96,79,78,67,69,82,86,67,95,64,84,85,76,58,75,69,86,90,98,78,85,77,90,76,75,85,63,79]...:plt.hist(ages,bins=partition,facecolor='yellow',edgecolor='b')#绘制直方图...:plt.title('各分数段人数分布直方图')...:plt.xticks(np.arange(0,120,10))...:plt.xlabel('分数')...:plt.ylabel('人数')...:plt.show()9.4.4绘制散点图使用plt.scatter()函数绘制散点图,其常用的参数见表9-15。表9-15plt.scatter()函数常用参数参数名称作用取值x,yX轴和Y轴对应的数据接收列表类型数据s设置点的大小整数、列表或一维数组等,默认为10。若设置为一个整数,则表示所有点的大小;若传入列表或一维数组则表示每个点的大小color设置点的颜色颜色取值(见表9-9),可以是列表或一维数组等。若设置为一个颜色,则表示所有点颜色相同;若传入列表或一维数组则表示每个点的颜色。marker设置点的形状取值见表9-8alpha设置点的透明度0~1的浮点数9.4.4绘制散点图【例9-9】生成500个均值为100、标准差为30的随机点坐标,并根据点坐标数据绘制散点图。In[1]:importmatplotlib.pyplotasplt...:importnumpyasnp...:plt.figure(figsize=(8,6),dpi=100)...:#数据准备...:mu=100#均值...:sigma=30#标准差...:x=mu+sigma*(np.random.randn(500))#生成均值为mu,标准差为sigma,服从正态分布的随机数...:y=mu+sigma*(np.random.randn(500))...:plt.scatter(x,y,color='r',marker='o',s=80,alpha=0.4)#绘制散点图...:plt.grid()...:plt.show()9.4.5绘制饼图饼图(PieGraph)也称为圆饼图,使用一整个圆饼代表数据的总量,使用plt.pie()函数绘制饼图,其常用的参数见表9-16。表9-16plt.pie()函数常用参数参数名称作用取值x用于绘制饼图的数据接收列表类型数据explode设置饼图的半径浮点数,默认为1labels指定饼图外侧显示的文字接收列表类型数据radius设置饼图半径浮点数pctdistance设置百分比标签与圆心的距离,为圆半径的倍数浮点数,默认为0.6textprops设置饼图中文本的属性
autopct自动添加百分比显示格式化方法显示百分比,如'%.2f%%',保留两位小数labeldistance设置每一项的名称与圆心的距离,为圆半径的倍数浮点数9.4.5绘制饼图【例9-10】表中是某医院12月份各科室门诊每日10:00实时流量检测数据的总和(单位:人次)。请根据表中数据绘制每个科室人流量占比的饼图。科室内科儿科保健科外科妇科急症科其它人数3112295216441931146814203431In[1]:importnumpyasnp...:importmatplotlib.pyplotasplt...:fig=plt.figure(figsize=(8,6))...:data=[3112,2952,1644,1931,1468,1420,3431]#绘图数据...:labels=['内科','儿科','保健科','外科','妇科','急诊科','其它']...:epd=(0.2,0.05,0.05,0.05,0.05,0.05,0.05)...:plt.pie(x=data,labels=labels,...:explode=epd,radius=1.5,...:autopct='%.2f%%',...:textprops={'
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教师人文试题及答案呈现
- 抽动障碍诊疗指南(2025版)
- 车辆交强险商业险投保选择攻略
- LA技师重点试题及答案解读
- 乘法单元测试卷及答案详解
- 中专会计电算化试题及答案展示
- 2026考研全国统考数学三习题集(查漏补缺专用)
- 2026考研数学一模拟试卷|全真模拟卷
- 九年级上册人教版语文《电生磁 第2节》
- 鼻窦球囊扩张术临床实践指南(2025版)
- 透析患者怎么分层次管理?荣科血液净化智能管理系统用标签实现精准分级
- Unit 4 Healthy habits (Period 1)(课件)-2026-2027学年人教PEP版英语五年级上册
- 2025注册环保工程师《专业基础考试》考试卷含答案
- 2026网络安全宣传周网络安全知识培训智能时代网安护航
- 2026秋小学科学教科版六年级上册(新教材)教学计划附进度表
- 软件技术专业介绍
- GB/T 4604-2006滚动轴承径向游隙
- GB/T 29489-2013高压交流开关设备和控制设备的感性负载开合
- GB/T 1415-2008米制密封螺纹
- GB/T 12613.7-2011滑动轴承卷制轴套第7部分:薄壁轴套壁厚测量
- 网络设备Visio图标库
评论
0/150
提交评论