时间:2021-05-22
有个朋友要求帮忙绘制堆叠柱状图,查阅了一些文档之后也算是完成了,只是一个小demo,下面我就记录一下。
1.什么是堆叠柱状图
与并排显示分类的分组柱状图不同,堆叠柱状图将每个柱子进行分割以显示相同类型下各个数据的大小情况。它可以形象的展示一个大分类包含的每个小分类的数据,以及各个小分类的占比,显示的是单个项目与整体之间的关系。效果图如下:
2.数据展示
这里展示了部分数据,主要是treatment就是对应的上图分类一,分类二;species就是对应的分组;ra就是对应的各个分组的比例。
3.Python代码
from matplotlib import pyplot as pltimport pandas as pdimport xlrdimport numpy as np data = xlrd.open_workbook('ccc.xlsx') #打开数据table = data.sheet_by_index(0) #获取sheet1的数据nrows = table.nrows #获取sheet1中的行plot_list = ['plot1']plot1_ra_list = [[0] for i in range(17)]#构建一个17X1的列表i = 0for row in range(1,nrows): #循环读取表内数据 if table.cell(row,0).value == 2015.0 and table.cell(row,1).value == 'plot1': print(table.cell(row, 3).value) #第三列是各个元素所占的比例 print(i) plot1_ra_list[i][0]=(float(table.cell(row, 3).value)) i+=1#颜色列表color = ['y','r','snow','b','k','g','orange','c','bisque','brown','lime','aqua','coral','darkcyan','gold','teal','pink',]plt.figure(figsize=(8,6))for i in range(17): plt.bar(range(len(plot1_ra_list[i])), plot1_ra_list[i],bottom=np.sum(plot1_ra_list[:i],axis = 0),label=str(i+1),tick_label = plot_list,fc = color[i])plt.legend()plt.show()4.效果展示
上述代码我只做了2015年的plot1,如果要把plot2增加上注意要对齐plot1和plot2的species数量,可以认为的添加,并补充对应的ra为0,这样子也不影响整个做图。下面我PO一张demo。
以上这篇Python绘制堆叠柱状图的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例为大家分享了python绘制水平条形图的具体代码,供大家参考,具体内容如下水平条形图与绘制柱状图类似,大家可以先看看我之前写的博客,如何绘制柱状图水平条
本文实例为大家分享了python使用Plotly绘图工具绘制柱状图的具体代码,供大家参考,具体内容如下使用Plotly绘制基本的柱状图,需要用到的函数是grap
本文实例讲述了JavaScript实现的DOM绘制柱状图效果。分享给大家供大家参考,具体如下:www.jb51.netJavaScriptDOM绘制柱状图#ch
柱状图是经常需要绘制的图,本文讲解如何在软件绘制的默认的柱状图的基础上对柱状图进行美化设计,得到一张漂亮的柱状图。1、录入数据。2、选择数据,插入柱状图,得到软
柱状图是经常需要绘制的图,本文讲解如何在软件绘制的默认的柱状图的基础上对柱状图进行美化设计,得到一张漂亮的柱状图。 1、录入数据。 2、选择数据,插入柱