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获取指定网页上所有超链接的方法
Apr 04 Python
Python multiprocessing模块中的Pipe管道使用实例
Apr 11 Python
Python异常的检测和处理方法
Oct 26 Python
pycharm恢复默认设置或者是替换pycharm的解释器实例
Oct 29 Python
python 搭建简单的http server,可直接post文件的实例
Jan 03 Python
Django给admin添加Action的步骤详解
May 01 Python
python基于socket进行端口转发实现后门隐藏的示例
Jul 25 Python
详解从Django Allauth中进行登录改造小结
Dec 18 Python
Python关于反射的实例代码分享
Feb 20 Python
python操作ini类型配置文件的实例教程
Oct 30 Python
python中@contextmanager实例用法
Feb 07 Python
详解python3 GUI刷屏器(附源码)
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
echo(),print(),print_r()之间的区别?
2006/11/19 PHP
PHP empty函数报错解决办法
2014/03/06 PHP
PHP实现的通过参数生成MYSQL语句类完整实例
2016/04/11 PHP
PHP 实现 WebSocket 协议原理与应用详解
2020/04/22 PHP
跨浏览器的设置innerHTML方法
2006/09/18 Javascript
js简单实现根据身份证号码识别性别年龄生日
2013/11/29 Javascript
javascript 原型链维护和继承详解
2014/11/26 Javascript
jquery操作select方法汇总
2015/02/05 Javascript
Js+php实现异步拖拽上传文件
2015/06/23 Javascript
JS 实现倒计时数字时钟效果【附实例代码】
2016/03/30 Javascript
AngularJS获取json数据的方法详解
2017/05/27 Javascript
浅析Javascript中双等号(==)隐性转换机制
2017/10/27 Javascript
JQuery 又谈ajax局部刷新
2017/11/27 jQuery
JS计算距当前时间的时间差实例
2017/12/29 Javascript
vue2.0+vuex+localStorage代办事项应用实现详解
2018/05/31 Javascript
详解微信小程序调起键盘性能优化
2018/07/24 Javascript
JavaScript数据结构与算法之二叉树实现查找最小值、最大值、给定值算法示例
2019/03/01 Javascript
Layui实现主窗口和Iframe层参数传递
2019/11/14 Javascript
js实现图片实时时钟
2020/01/15 Javascript
Vue.extend 登录注册模态框的实现
2020/12/29 Vue.js
以Flask为例讲解Python的框架的使用方法
2015/04/29 Python
python文件操作相关知识点总结整理
2016/02/22 Python
Python基础知识_浅谈用户交互
2017/05/31 Python
python 设置输出图像的像素大小方法
2019/07/04 Python
使用 PyTorch 实现 MLP 并在 MNIST 数据集上验证方式
2020/01/08 Python
PyCharm中Matplotlib绘图不能显示UI效果的问题解决
2020/03/12 Python
Python如何发送与接收大型数组
2020/08/07 Python
python实现图像高斯金字塔的示例代码
2020/12/11 Python
Ray-Ban雷朋美国官网:全球领先的太阳眼镜品牌
2016/07/20 全球购物
董事长秘书工作职责
2014/06/10 职场文书
大学迎新生标语
2014/10/06 职场文书
2014年自愿离婚协议书
2014/10/10 职场文书
2014年大学教师工作总结
2014/12/02 职场文书
2015年幼儿园学前班工作总结
2015/05/18 职场文书
JS新手入门数组处理的实用方法汇总
2021/04/07 Javascript
分享几个JavaScript运算符的使用技巧
2021/04/24 Javascript