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中列表元素连接方法join用法实例
Apr 07 Python
举例讲解Python中的死锁、可重入锁和互斥锁
Nov 05 Python
Python 绘图和可视化详细介绍
Feb 11 Python
Python 转义字符详细介绍
Mar 21 Python
python利用paramiko连接远程服务器执行命令的方法
Oct 16 Python
详解Python之unittest单元测试代码
Jan 24 Python
python定向爬取淘宝商品价格
Feb 27 Python
Python 实现域名解析为ip的方法
Feb 14 Python
Python实现钉钉发送报警消息的方法
Feb 20 Python
如何通过python画loss曲线的方法
Jun 26 Python
Python range、enumerate和zip函数用法详解
Sep 11 Python
python实现PolynomialFeatures多项式的方法
Jan 06 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
mysql建立外键
2006/11/25 PHP
PHP setTime 设置当前时间的代码
2012/08/27 PHP
PHP中的静态变量及static静态变量使用详解
2015/11/05 PHP
PHP7之Mongodb API使用详解
2015/12/26 PHP
对PHP依赖注入的理解实例分析
2016/10/09 PHP
PHP将英文数字转换为阿拉伯数字实例讲解
2019/01/28 PHP
PHP实现的敏感词过滤方法示例
2019/03/06 PHP
Document 对象的常用方法
2009/07/31 Javascript
javascript 图片上一张下一张链接效果代码
2010/03/12 Javascript
关于可运行代码无法正常执行的使用说明
2010/05/13 Javascript
Asp.net下利用Jquery Ajax实现用户注册检测(验证用户名是否存)
2010/09/12 Javascript
使用JS+plupload直接批量上传图片到又拍云
2014/12/01 Javascript
javascript中获取元素标签中间的内容的实现方法
2016/10/08 Javascript
微信小程序开发(一) 微信登录流程详解
2017/01/11 Javascript
Vue全局分页组件的实现代码
2018/08/10 Javascript
JavaScript数组方法的错误使用例子
2018/09/13 Javascript
微信小程序实现笑脸评分功能
2018/11/03 Javascript
浅谈KOA2 Restful方式路由初探
2019/03/14 Javascript
vueScroll实现移动端下拉刷新、上拉加载
2019/03/22 Javascript
vue自定义js图片碎片轮播图切换效果的实现代码
2019/04/28 Javascript
Nuxt 嵌套路由nuxt-child组件用法(父子页面组件的传值)
2020/11/05 Javascript
[02:42]决战东方!DOTA2亚洲邀请赛重启荣耀之争
2017/03/17 DOTA
[01:19]DOTA2城市挑战赛报名开始 开启你的城市传奇
2018/03/23 DOTA
Python实现将目录中TXT合并成一个大TXT文件的方法
2015/07/15 Python
Python连接Redis的基本配置方法
2018/09/13 Python
使用Python爬虫库requests发送表单数据和JSON数据
2020/01/25 Python
使用python爬取抖音app视频的实例代码
2020/12/01 Python
Woods官网:加拿大最古老、最受尊敬的户外品牌之一
2020/09/12 全球购物
大家检讨书5000字
2014/02/03 职场文书
优秀纪检干部材料
2014/08/27 职场文书
小学生2014国庆节演讲稿:祖国在我心中
2014/09/21 职场文书
作风整顿剖析材料
2014/09/30 职场文书
毕业实习计划书
2015/01/16 职场文书
新农村建设指导员工作总结
2015/08/13 职场文书
初三英语教学反思
2016/02/15 职场文书
python神经网络 tf.name_scope 和 tf.variable_scope 的区别
2022/05/04 Python