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写的一个简单DNS服务器实例
Jun 04 Python
python实现比较两段文本不同之处的方法
May 30 Python
python中异常捕获方法详解
Mar 03 Python
Python之Scrapy爬虫框架安装及简单使用详解
Dec 22 Python
Python抓取聚划算商品分析页面获取商品信息并以XML格式保存到本地
Feb 23 Python
对python数据切割归并算法的实例讲解
Dec 12 Python
Python通过for循环理解迭代器和生成器实例详解
Feb 16 Python
Python爬虫——爬取豆瓣电影Top250代码实例
Apr 17 Python
详解用python写一个抽奖程序
May 10 Python
Python基于BeautifulSoup和requests实现的爬虫功能示例
Aug 02 Python
解决django的template中如果无法引用MEDIA_URL问题
Apr 07 Python
Python制作一个随机抽奖小工具的实现
Jul 07 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
Smarty+QUICKFORM小小演示
2007/02/25 PHP
php获取文章上一页与下一页的方法
2014/12/01 PHP
详解PHP swoole process的使用方法
2017/08/26 PHP
DOM Scripting中的图片切换[兼容Firefox]
2010/06/12 Javascript
SWFObject 2.1以上版本语法介绍
2010/07/10 Javascript
jQuery获取文本节点之 text()/val()/html() 方法区别
2011/03/01 Javascript
Jquery getJSON方法详细分析
2013/12/26 Javascript
如何实现chrome浏览器关闭页面时弹出“确定要离开此面吗?”
2015/03/05 Javascript
JavaScript判断表单提交时哪个radio按钮被选中的方法
2015/03/21 Javascript
jquery实现点击变换导航样式的方法
2015/08/31 Javascript
JS原型、原型链深入理解
2016/02/27 Javascript
同步文本框内容JS代码实现
2016/08/04 Javascript
AngularJS应用开发思维之依赖注入3
2016/08/19 Javascript
jquery validate表单验证插件
2016/09/06 Javascript
浅谈EasyUi ComBotree树修改 父节点选择的问题
2016/11/07 Javascript
完美解决node.js中使用https请求报CERT_UNTRUSTED的问题
2017/01/08 Javascript
js利用for in循环获取 一个对象的所有属性以及值的实例
2017/03/30 Javascript
详解node单线程实现高并发原理与node异步I/O
2017/09/21 Javascript
使用vue的v-for生成table并给table加上序号的实例代码
2017/10/27 Javascript
Vue项目中使用mock.js的完整步骤
2021/01/12 Vue.js
django自带的server 让外网主机访问方法
2018/05/14 Python
对Python使用mfcc的两种方式详解
2019/01/09 Python
使用CSS3的ruby-position固定注音位置的用法示例
2016/07/05 HTML / CSS
HTML5拖拽功能实现的拼图游戏
2018/07/31 HTML / CSS
SEPHORA丝芙兰捷克官网:购买香水、化妆品和护肤品
2018/11/26 全球购物
出纳试用期自我鉴定
2014/04/07 职场文书
让生命充满爱演讲稿
2014/05/10 职场文书
法律顾问服务方案
2014/05/15 职场文书
考试诚信承诺书
2014/05/23 职场文书
外贸业务员求职信
2014/06/16 职场文书
民主评议党员个人自我评价
2015/03/03 职场文书
杨善洲观后感
2015/06/04 职场文书
个人收入证明范本
2015/06/12 职场文书
详解Redis实现限流的三种方式
2021/04/27 Redis
Python中字符串对象语法分享
2022/02/24 Python
table设置超出部分隐藏,鼠标移上去显示全部内容的方法
2022/12/24 HTML / CSS