Python绘制堆叠柱状图的实例


Posted in Python onJuly 09, 2019

有个朋友要求帮忙绘制堆叠柱状图,查阅了一些文档之后也算是完成了,只是一个小demo,下面我就记录一下。

1.什么是堆叠柱状图

与并排显示分类的分组柱状图不同,堆叠柱状图将每个柱子进行分割以显示相同类型下各个数据的大小情况。它可以形象的展示一个大分类包含的每个小分类的数据,以及各个小分类的占比,显示的是单个项目与整体之间的关系。效果图如下:

Python绘制堆叠柱状图的实例

2.数据展示

Python绘制堆叠柱状图的实例

这里展示了部分数据,主要是treatment就是对应的上图分类一,分类二;species就是对应的分组;ra就是对应的各个分组的比例。

3.Python代码

from matplotlib import pyplot as plt
import pandas as pd
import xlrd
import 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 = 0
for 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绘制堆叠柱状图的实例

以上这篇Python绘制堆叠柱状图的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python socket C/S结构的聊天室应用实现
Nov 30 Python
Python 提取dict转换为xml/json/table并输出的实现代码
Aug 28 Python
使用Kivy将python程序打包为apk文件
Jul 29 Python
浅析Python中return和finally共同挖的坑
Aug 18 Python
python的unittest测试类代码实例
Dec 07 Python
python Crypto模块的安装与使用方法
Dec 21 Python
python机器学习理论与实战(五)支持向量机
Jan 19 Python
浅谈Python中的私有变量
Feb 28 Python
在SQLite-Python中实现返回、查询中文字段的方法
Jul 17 Python
通过代码实例了解Python3编程技巧
Oct 13 Python
python从PDF中提取数据的示例
Oct 30 Python
python 使用openpyxl读取excel数据
Feb 18 Python
python3 线性回归验证方法
Jul 09 #Python
python time.sleep()是睡眠线程还是进程
Jul 09 #Python
python logging模块的使用总结
Jul 09 #Python
Django中如何使用sass的方法步骤
Jul 09 #Python
python执行scp命令拷贝文件及文件夹到远程主机的目录方法
Jul 08 #Python
使用python socket分发大文件的实现方法
Jul 08 #Python
python查看文件大小和文件夹内容的方法
Jul 08 #Python
You might like
解析CI即CodeIgniter框架在Nginx下的重写规则
2013/06/03 PHP
基于php实现随机合并数组并排序(原排序)
2015/11/26 PHP
大家须知简单的php性能优化注意点
2016/01/04 PHP
JavaScript Event学习第三章 早期的事件处理程序
2010/02/07 Javascript
JS焦点图切换,上下翻转
2011/05/12 Javascript
JS中setInterval、setTimeout不能传递带参数的函数的解决方案
2013/04/28 Javascript
JavaScript给按钮绑定点击事件(onclick)的方法
2015/04/07 Javascript
Node.js实用代码段之获取Buffer对象字节长度
2016/03/17 Javascript
JavaScript学习笔记之数组去重
2016/03/23 Javascript
js实现密码强度检测【附示例】
2016/03/30 Javascript
微信小程序 传值取值的几种方法总结
2017/01/16 Javascript
JS拉起或下载app的实现代码
2017/02/22 Javascript
详解vue过滤器在v2.0版本用法
2017/06/01 Javascript
监听element-ui table滚动事件的方法
2019/03/26 Javascript
JS实现的检验身份证格式并输出出生日期,年龄,性别,出生地示例
2019/05/17 Javascript
JavaScript计算正方形面积
2019/11/26 Javascript
前端使用crypto.js进行加密的函数代码
2020/08/16 Javascript
详解Python中的条件判断语句
2015/05/14 Python
python数据结构之线性表的顺序存储结构
2018/09/28 Python
Python将字符串常量转化为变量方法总结
2019/03/17 Python
pyqt5 实现在别的窗口弹出进度条
2019/06/18 Python
python输出带颜色字体实例方法
2019/09/01 Python
python装饰器使用实例详解
2019/12/14 Python
Python使用tkinter实现摇骰子小游戏功能的代码
2020/07/02 Python
ONLY德国官方在线商店:购买时尚女装
2017/09/21 全球购物
Paul Smith英国官网:英国国宝级时装品牌
2019/03/21 全球购物
Charles&Keith美国官方网站:新加坡快时尚鞋类和配饰零售商
2019/11/27 全球购物
python re模块和正则表达式
2021/03/24 Python
关于逃课的检讨书
2014/01/23 职场文书
扩大国家免疫规划实施方案
2014/03/21 职场文书
真诚的求职信
2014/07/04 职场文书
保密工作目标责任书
2014/07/28 职场文书
群众路线领导班子整改方案
2014/10/25 职场文书
2015年挂职干部工作总结
2015/05/14 职场文书
贴吧吧主申请感言
2015/08/03 职场文书
入党宣誓大会后的感想
2015/08/10 职场文书