Python数据分析与可视化(第2版) 课件5.3 绘制条形图_第1页
Python数据分析与可视化(第2版) 课件5.3 绘制条形图_第2页
Python数据分析与可视化(第2版) 课件5.3 绘制条形图_第3页
Python数据分析与可视化(第2版) 课件5.3 绘制条形图_第4页
Python数据分析与可视化(第2版) 课件5.3 绘制条形图_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章利用Matplotlib进行数据可视化5-3绘制条形图各种统计图表中,条形图与柱形图类似,两者都用于比较多个数据,只是两者区别在于图形的方向,柱形图面向垂直方向,条形图面向水平方向。条形图又称横向柱形图,当坐标轴刻度取值较多且名称又较长时,可以考虑使用条形图,因为条形图能够横向布局,方便展示较长的坐标轴刻度值。plt.barh(y,height,width,color,edgecolor,label)其中,各参数的作用如下:y表示y轴对应数据的列表。width表示条形的长度。height表示条形的宽度。color表示条形的颜色。edgecolor表示条形边框的颜色。label表示图例的内容,用于解释每个条形的含义,这个参数在绘制多重条形图时作用较为明显,因为可以用不同的颜色区分不同的条形。一、直接绘制条形图1.绘制条形图pyplot模块提供了条形图绘制函数barh,其一般用法为:plt.barh(y,height,width,color,edgecolor,label)一、直接绘制条形图1.绘制条形图一、直接绘制条形图示例代码如下:importpandasaspdimportmatplotlib.pyplotaspltdict={'a':['A','B','C'],'b':[95,85,90],'c':[60,65,70],'d':[100,80,90],'e':[65,70,75]}data=pd.DataFrame(dict)print(data)plt.rcParams['font.sans-serif']=['SimHei']y=data['a']width=data['b']height=0.4plt.barh(y,width,height,color='darkorange',edgecolor='b')plt.title("b列统计")plt.show()1.绘制条形图一、直接绘制条形图2.添加数据标签添加条形图的数据标签时,首先确定条形对应的数据标签,然后在条形右侧添加该条形的数据标签。一、直接绘制条形图以3个条形的条形图为例,数据标签的位置比每个条形长度略靠右。2.添加数据标签一、直接绘制条形图示例代码如下:width=[width1,wedth2,width3]

#设置每个条形的横坐标y=[y1,y2,y3] #设置每个条形的纵坐标fori,jinzip(width,y): plt.text(i+∆w,j,i)2.添加数据标签其中,在plt.text函数中,第1个参数i表示数据标签的横坐标,即条形的长度width,使用时也可以根据实际情况右移一点位置∆w,以保证添加的数标签处于条形图右侧的∆w位置,如i+0.5表示在每个条形长度的右侧0.5的位置设置数据标签。一、直接绘制条形图2.添加数据标签第2个参数j表示数据标签的纵坐标,使用时也可以根据实际情况下移一点位置,以保证添加的数标签处于垂直居中位置。一、直接绘制条形图2.添加数据标签第3个参数i表示显示出来的数据标签的值,即每一个条形的实际长度。使用plt.text时,前两个参数表示添加数据标签位置,需要用数值型数据。一、直接绘制条形图2.添加数据标签一、直接绘制条形图示例代码如下:importnumpyasnpplt.rcParams['figure.figsize']=(10,6)plt.rcParams['font.sans-serif']=['SimHei']y=np.arange(1,4)#设置y轴刻度为1,2,3width=data['b']height=0.4plt.barh(y,width,height,color='darkorange',edgecolor='b')plt.title("b列统计")2.添加数据标签一、直接绘制条形图示例代码如下:fori,jinzip(width,y):plt.text(i+2,j-0.05,i,color='r',size=15)#数据标签右移2,可以使得数据位于条形右侧的2个单位长度

#数据标签下移0.05,可以使得数据处于垂直居中位置

#数据标签的文本颜色设为红色y#数据标签的文本大小颜色设为15plt.yticks(y,data['a'])#将y轴刻度重新设为a列数据plt.show()2.添加数据标签一、直接绘制条形图绘制统计图时,除了可以直接绘制以外,也常常需要先对数据进行分组统计后,再根据统计绘制图。这种方法几乎在所有统计图中均可以使用,下面以条形为例加以说明。二、利用数据分组绘制条形图二、利用数据分组绘制条形图示例代码如下:importnumpyasnpdict={'a':[1,2,3,3,2,1,1,2,3],'b':np.arange(60,101,5),'c':np.arange(100,59,-5)}data=pd.DataFrame(dict)data['a']=data['a'].replace({1:'1班',2:'2班',3:'3班'})

#将a列中的1、2、3分别替换为1班、2班、3班print(data)二、利用数据分组绘制条形图二、利用数据分组绘制条形图示例代码如下:group=data.groupby(by='a')['b'].mean()

#按a列分组再计算b列的平均值group=round(group,0)#统计结果按照四舍五入显示整数print("按a列分组再计算b列的平均值的结果为:\n",group)二、利用数据分组绘制条形图二、利用数据分组绘制条形图示例代码如下:plt.rcParams['figure.figsize']=(10,6)plt.rcParams['font.sans-serif']=['SimHei']y=group.indexwidth=groupheight=0.4plt.barh(y,width,height,color='darkorange',edgecolor='b')plt.title("按a列分组再计算b列的平均值")plt.show()二、利用数据分组绘制条形图实训任务5-3:利用read_csv导入鸢尾花数据集iris.csv数据(iris.csv存放在c:\data路径中),并命名为data1,完成:(1)按“Iris_type”列分组,再计算“Sep_wid”列的平均值,结果保留2位小数,查看分组统计结果。(2)根据分组统计结果绘制条形图,显示标题“不同类别鸢尾花的平均花萼宽度条形图”,并将标题文字颜色设为蓝色,大小设为20,添加数据标签,数据标签文字颜色设为红色,大小设为15,添加x轴辅助线,辅助线的值为“Sep_wid”列的总体平均值,辅助线的线型为点虚线,辅助线的颜色为灰色。实训任务5-3(1)具体代码如下:data1=pd.read_csv("c:\data\iris.csv")data1_group=data1.groupby('Iris_type')['Sep_wid'].mean()data1_group=round(data1_group,2)print("data1的分组结果为:\n",data1_group)实训任务5-3(1)实训任务5-3(2)具体代码如下:plt.rcParams['figure.figsize']=(12,6)plt.rcParams['font.sans-serif']=['SimHei']y=np.arange(1,4)width=data1_groupheight=0.4plt.barh(y,width,height,color='darkorange',edgecolor='b')plt.title("不同类别鸢尾花的平均花萼宽度条形图",color='b',size=20)fori,jinzip(width,y):plt.text(i+0.1,j,i,color='r',size=15)plt.yticks(y,data1_group.index)plt.axvline(data1['Sep_wid'].mean(),linestyle=':',color='grey')plt.show()实训任务5-3(2)实训任务5-4:根据任务1的导入数据,重新命名为data2,完成:(1)按“Iris_type”列分组,再计算“Pet_len”列和“Pet_wid”列的平均值,结果保留2位小数。(2)根据(1)的分组计算结果,在2行1列的两个子图中,分别绘制条形图,并比较其结果。实训任务5-4(1)具体代码如下:data2=data1print(data2.columns)data2_group1=data1.groupby('Iris_type')['Pet_len'].mean()data2_group1=round(data2_group1,2)data2_group2=data1.groupby('Iris_type')['Pet_wid'].mean()data2_group2=round(data2_group2,2)实训任务5-4(2)具体代码如下:fig=plt.figure(figsize=(12,6))y1=data2_group1.indexwidth1=data2_group1y2=data2_group2.indexwidth2=data2_group2height=0.4ax1=fig.add_subplot(2,1,1)ax1.barh(y1,width1,height,color='darkorange',edgecolor='b')ax1.set_title("Pet_len",color='r',size=15)ax2=fig.add_subplot(2,1,2)ax2.barh(y2,width2,height,color='darkorange',edgecolor='b')ax2.set_title("Pet_wid",color='r',size=15)plt.show()实训任务5-4(2)从两个子图看,不管是“Pet_len”,还是“Pet_wid”,不同类别的鸢尾花,都是平均值都是Iris-virginica>

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论