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获取图片颜色信息的方法
Mar 18 Python
python正则表达式match和search用法实例
Mar 26 Python
Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法
Apr 23 Python
Scrapy爬虫实例讲解_校花网
Oct 23 Python
Python基于hashlib模块的文件MD5一致性加密验证示例
Feb 10 Python
python读取中文txt文本的方法
Apr 12 Python
Numpy之文件存取的示例代码
Aug 03 Python
python 获取图片分辨率的方法
Jan 08 Python
Django如何将URL映射到视图
Jul 29 Python
Pandas将列表(List)转换为数据框(Dataframe)
Apr 24 Python
完美解决pycharm 不显示代码提示问题
Jun 02 Python
Python 详解通过Scrapy框架实现爬取CSDN全站热榜标题热词流程
Nov 11 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
PHP 获取客户端真实IP地址多种方法小结
2010/05/15 PHP
PHP中把stdClass Object转array的几个方法
2014/05/08 PHP
19个Android常用工具类汇总
2014/12/30 PHP
php实现的简单检验登陆类
2015/06/18 PHP
完美的php分页类
2017/10/24 PHP
Web版彷 Visual Studio 2003 颜色选择器
2007/01/09 Javascript
基于jquery的无限级联下拉框js插件
2011/10/29 Javascript
jquery多选项卡效果实例代码(附效果图)
2013/03/23 Javascript
JS命名空间的另一种实现
2013/08/09 Javascript
Javascript 多浏览器兼容总结(实战经验)
2013/10/30 Javascript
利用jquery写的左右轮播图特效
2014/02/12 Javascript
将json对象转换为字符串的方法
2014/02/20 Javascript
JavaScript实现网页对象拖放功能的方法
2015/04/15 Javascript
js获取form表单所有数据的简单方法
2016/08/18 Javascript
微信小程序 LOL 英雄介绍开发实例
2016/09/30 Javascript
详解nodejs 文本操作模块-fs模块(四)
2016/12/22 NodeJs
JS中with的替代方法与String中的正则方法详解
2016/12/23 Javascript
node.js调用C++函数的方法示例
2018/09/21 Javascript
微信小程序学习笔记之目录结构、基本配置图文详解
2019/03/28 Javascript
Vue项目中数据的深度监听或对象属性的监听实例
2020/07/17 Javascript
Vue实现穿梭框效果
2020/09/30 Javascript
python数据结构之图深度优先和广度优先实例详解
2015/07/08 Python
python thrift搭建服务端和客户端测试程序
2018/01/17 Python
详解Ubuntu16.04安装Python3.7及其pip3并切换为默认版本
2019/02/25 Python
python3实现二叉树的遍历与递归算法解析(小结)
2019/07/03 Python
python新手学习使用库
2020/06/11 Python
如何用Python进行时间序列分解和预测
2021/03/01 Python
美国专业级皮肤病和spa品质护肤品的高级零售网站:SkinCareRx
2017/02/06 全球购物
Tenstickers法国:墙贴和装饰贴纸
2019/08/26 全球购物
地球鞋加拿大官网:Earth Shoes Canada
2020/11/17 全球购物
自荐书范文
2013/12/08 职场文书
会计毕业生自荐书
2014/06/12 职场文书
股东授权委托书
2014/10/15 职场文书
导游词之张家口
2019/12/13 职场文书
django上传文件的三种方式
2021/04/29 Python
SpringBoot快速入门详解
2021/07/21 Java/Android