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 相关文章推荐
python3+PyQt5实现文档打印功能
Apr 24 Python
python如何生成网页验证码
Jul 28 Python
pygame实现简易飞机大战
Sep 11 Python
详解Python基础random模块随机数的生成
Mar 23 Python
Django  ORM 练习题及答案
Jul 19 Python
深入浅析Python 中的sklearn模型选择
Oct 12 Python
在pycharm中debug 实时查看数据操作(交互式)
Jun 09 Python
python -v 报错问题的解决方法
Sep 15 Python
Python自动化xpath实现自动抢票抢货
Sep 19 Python
如何在pycharm中快捷安装pip命令(如pygame)
May 31 Python
Matplotlib绘制条形图的方法你知道吗
Mar 21 Python
Python实现视频自动打码的示例代码
Apr 08 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中获取关键词及所属来源搜索引擎名称的代码
2011/02/15 PHP
php json_encode值中大括号与花括号区别
2013/09/30 PHP
PHP mail()函数使用及配置方法
2014/01/14 PHP
dedecms函数分享之获取某一栏目所有子栏目
2014/05/19 PHP
smarty内置函数config_load用法实例
2015/01/22 PHP
php文件扩展名判断及获取文件扩展名的N种方法
2015/09/12 PHP
Zend Framework教程之Bootstrap类用法概述
2016/03/14 PHP
PHP基于PDO实现的SQLite操作类【包含增删改查及事务等操作】
2017/06/21 PHP
phpStudy中升级MySQL版本到5.7.17的方法步骤
2017/08/03 PHP
ThinkPHP框架实现的微信支付接口开发完整示例
2019/04/10 PHP
兼容Mozilla必须知道的知识。
2007/01/09 Javascript
JS获取整个页面文档的实现代码
2011/12/15 Javascript
js 浏览器事件介绍
2012/03/30 Javascript
SuperSlide2实现图片滚动特效
2014/06/20 Javascript
javascript框架设计读书笔记之数组的扩展与修复
2014/12/02 Javascript
javascript实现限制上传文件大小
2015/02/06 Javascript
JavaScript数组前面插入元素的方法
2015/04/06 Javascript
JavaScript中的parse()方法使用简介
2015/06/12 Javascript
JQuery 在文档中查找指定name的元素并移除的实现方法
2016/05/19 Javascript
Jquery Easyui菜单组件Menu使用详解(15)
2016/12/18 Javascript
AngularJs ng-change事件/指令的用法小结
2017/11/01 Javascript
简述JS浏览器的三种弹窗
2018/07/15 Javascript
24个ES6方法解决JS实际开发问题(小结)
2020/05/31 Javascript
python发送邮件示例(支持中文邮件标题)
2014/02/16 Python
Python查找相似单词的方法
2015/03/05 Python
利用Python获取赶集网招聘信息前篇
2016/04/18 Python
Python编程实现控制cmd命令行显示颜色的方法示例
2017/08/14 Python
python简单鼠标自动点击某区域的实例
2019/06/25 Python
django的ORM操作 增加和查询
2019/07/26 Python
Python语法之精妙的十个知识点(装B语法)
2020/01/18 Python
如何在 Matplotlib 中更改绘图背景的实现
2020/11/26 Python
HTML5语音识别标签写法附图
2013/11/18 HTML / CSS
Html5获取高德地图定位天气的方法
2019/12/26 HTML / CSS
导师推荐信范文
2014/05/09 职场文书
2015年世界无烟日活动总结
2015/02/10 职场文书
小学生红领巾广播稿
2015/08/19 职场文书