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过滤函数filter()使用自定义函数过滤序列实例
Aug 26 Python
Python日志模块logging简介
Apr 13 Python
Python实现的Google IP 可用性检测脚本
Apr 23 Python
在Python的Django框架中获取单个对象数据的简单方法
Jul 17 Python
python实现简单socket通信的方法
Apr 19 Python
Python使用email模块对邮件进行编码和解码的实例教程
Jul 01 Python
Python爬虫之模拟知乎登录的方法教程
May 25 Python
Python基于回溯法子集树模板解决最佳作业调度问题示例
Sep 08 Python
Tensorflow实现卷积神经网络用于人脸关键点识别
Mar 05 Python
Python 虚拟空间的使用代码详解
Jun 10 Python
pygame实现五子棋游戏
Oct 29 Python
Python 如何定义匿名或内联函数
Aug 01 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二分查找二种实现示例
2014/03/12 PHP
你应该知道PHP浮点数知识
2015/05/13 PHP
PHP中如何防止外部恶意提交调用ajax接口
2016/04/11 PHP
prototype1.4中文手册
2006/09/22 Javascript
js动态添加onload、onresize、onscroll事件(另类方法)
2012/12/26 Javascript
JQuery 图片的展开和伸缩实例讲解
2013/04/18 Javascript
javascript scrollTop正解使用方法
2013/11/14 Javascript
获得Javascript对象属性个数的示例代码
2013/11/21 Javascript
js 中将多个逗号替换为一个逗号的代码
2014/06/07 Javascript
Thinkphp模板没有解析直接原样输出的解决方法
2014/10/31 Javascript
修改或扩展jQuery原生方法的代码实例
2015/01/13 Javascript
jQuery插件jcrop+Fileapi完美实现图片上传+裁剪+预览的代码分享
2015/04/22 Javascript
JavaScript获取DOM元素的11种方法总结
2015/04/25 Javascript
JS实现简单的右下角弹出提示窗口完整实例
2016/06/21 Javascript
全面解析JS字符串和正则表达式中的match、replace、exec等函数
2016/07/01 Javascript
详解vue.js组件化开发实践
2016/12/14 Javascript
JavaScript提高加载和执行效率的方法
2017/02/03 Javascript
分享19个JavaScript 有用的简写写法
2017/07/07 Javascript
10个最优秀的Node.js MVC框架
2017/08/24 Javascript
JS/HTML5游戏常用算法之路径搜索算法 随机迷宫算法详解【普里姆算法】
2018/12/13 Javascript
vue.js的状态管理vuex中store的使用详解
2019/11/08 Javascript
JS实现简易留言板增删功能
2020/02/08 Javascript
使用Python读写文本文件及编写简单的文本编辑器
2016/03/11 Python
python用win32gui遍历窗口并设置窗口位置的方法
2019/07/26 Python
python读写csv文件并增加行列的实例代码
2019/08/01 Python
python使用 __init__初始化操作简单示例
2019/09/26 Python
python tkinter GUI绘制,以及点击更新显示图片代码
2020/03/14 Python
TensorFlow tf.nn.softmax_cross_entropy_with_logits的用法
2020/04/19 Python
python利用后缀表达式实现计算器功能
2021/02/22 Python
GOOD AMERICAN官网:为曲线性感而设计
2017/12/28 全球购物
学生会竞选演讲稿学习部
2014/08/25 职场文书
西安兵马俑导游词
2015/02/02 职场文书
幼师小班个人总结
2015/02/12 职场文书
学术会议通知
2015/04/15 职场文书
MySQL 字符集 character
2022/05/04 MySQL
TaiShan 200服务器安装Ubuntu 18.04的图文教程
2022/06/28 Servers