Python绘制组合图的示例
绘制组合图:
组合图就是将多个形状,组合到⼀个图形中,主要作⽤是节约作图的空间,节省读者的时间,从⽽提⾼
信息传达的效率。
importpandasaspd importnumpyasnp importmatplotlib.pyplotasplt defplot_combination1(): sale=pd.read_excel('./data/每月目标销售额和实际销售额.xlsx',header=0,index_col=0) #设置正常显示中文标签 plt.rcParams['font.sans-serif']=['SimHei'] #正常显示负号 plt.rcParams['axes.unicode_minus']=False #设置字体大小 plt.rcParams.update({'font.size':16}) #提取数据 x=np.arange(12)+1 y1=sale.目标销售额 y2=sale.实际销售额 #计算目标完成率 y3=y2/y1#float #print(y3)1月1.1200002月0.8875003月1.1181824月1.150000 """ 第一种方式:是⽤两个不同颜⾊的柱⼦,分别展示每个⽉的实际销售额和⽬标销售额, ⽤折线图展示⽬标完成率。 左边的主坐标轴是柱形图对应的数据,右边的次坐标轴是折线图对应的 数据,下边的横坐标轴表示细分的维度,⽐如时间、地区、渠道等。 """ plt.figure(figsize=(16,8)) plt.subplot(111) #柱形宽度 bar_width=0.35 #在主坐标轴绘制柱形图 plt.bar(x,y1,bar_width,label='目标销售额') plt.bar(x+bar_width,y2,bar_width,label='实际销售额') #设置坐标轴的取值范围,避免柱子过高而与图例重叠 plt.ylim(0,max(y1.max(),y2.max())*1.2) #设置图例 plt.legend(loc='upperleft') #设置横坐标的标签 plt.xticks(x) #plt.set_xticklabels(sale.index) #在次坐标轴上绘制折线图 plt.twinx() #ls:线的类型,lw:宽度,o:在顶点处实心圈 plt.plot(x,y3,ls='-',lw=2,color='r',marker='o',label='目标完成率') #设置次坐标轴的取值范围,避免折线图波动过大 plt.ylim(0,1.35) #设置图例 plt.legend() #定义显示百分号的函数 defto_percent(number,position=0): return'%.f'%(number*100)+'%' #次坐标轴的标签显示百分号FuncFormatter:自定义格式函数包 frommatplotlib.tickerimportFuncFormatter plt.gca().yaxis.set_major_formatter(FuncFormatter(to_percent)) #设置标题 plt.title('\n每月销售目标达成情况\n',fontsize=36,loc='center',color='k') plt.show() defplot_combination2(): """ 第二种方式:是⽤两条不同颜⾊的折线,分别展示每个⽉的实际销售额和⽬标销售额,再⽤两种不同颜 ⾊的柱形图展示实际与⽬标的差额,绿⾊代表完成⽬标,红⾊代表没有完成⽬标, 这种组合图不需要⽤到两个纵坐标轴, """ importpandasaspd importnumpyasnp importmatplotlib.pyplotasplt #设置正常显示中⽂标签 plt.rcParams['font.sans-serif']=['SimHei'] #正常显示负号 plt.rcParams['axes.unicode_minus']=False #设置字体⼤⼩ plt.rcParams.update({'font.size':16}) #从Excel⽂件中读取数据,第⼀列设置为索引 sale=pd.read_excel('./data/每月目标销售额和实际销售额.xlsx',index_col=0) #提取数据 #print('index') x=sale.index#Index(['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'],dtype='object',name='month') #print(x) y1=sale.目标销售额 y2=sale.实际销售额 #计算差额 y3=y2-y1 #绘制折线图 plt.figure(figsize=(16,8)) plt.subplot(111) plt.plot(x,y1,ls='-',lw=2,label='目标销售额') plt.plot(x,y2,ls='--',lw=2,label='实际销售额') #⽤列表推导式定义柱⼦的颜⾊,绿⾊代表完成⽬标,红⾊代表没有完成⽬标 color=['g'ifi>0else'#dc5034'foriiny3] #绘制柱形图 plt.bar(x,y3,color=color,label='差额') #设置图例 plt.legend(loc='upperleft') #设置标题 title='\n每月销售目标达成情况\n' plt.title(title,fontsize=36,loc='center',color='k') plt.show() if__name__=='__main__': plot_combination1() plot_combination2()
绘制结果:
第一种
第二种:
参考书目:
数据化分析Python实战-林骥
以上就是Python绘制组合图的示例的详细内容,更多关于Python绘制组合图的资料请关注毛票票其它相关文章!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。