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 相关文章推荐
解决python2.7用pip安装包时出现错误的问题
Jan 23 Python
用python找出那些被“标记”的照片
Apr 20 Python
Android分包MultiDex策略详解
Oct 30 Python
详解Python map函数及Python map()函数的用法
Nov 16 Python
python3中的md5加密实例
May 29 Python
Python通过调用有道翻译api实现翻译功能示例
Jul 19 Python
python进阶之多线程对同一个全局变量的处理方法
Nov 09 Python
Python list列表中删除多个重复元素操作示例
Feb 27 Python
python 经典数字滤波实例
Dec 16 Python
python 一维二维插值实例
Apr 22 Python
Keras实现DenseNet结构操作
Jul 06 Python
Python的三个重要函数详解
Jan 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
PHPWind与Discuz截取字符函数substrs与cutstr性能比较
2011/12/05 PHP
typecho插件编写教程(六):调用接口
2015/05/28 PHP
Zend Framework实现将session存储在memcache中的方法
2016/03/22 PHP
CI框架的安全性分析
2016/05/18 PHP
php排序算法实例分析
2016/10/17 PHP
实现web打印的各种方法介绍及实现代码
2013/01/09 Javascript
Struts2的s:radio标签使用及用jquery添加change事件
2013/04/08 Javascript
jQuery EasyUI 菜单与按钮之创建简单的菜单和链接按钮
2015/11/18 Javascript
js仿QQ邮箱收件人选择与搜索功能
2017/02/10 Javascript
基于JavaScript实现拖动滑块效果
2017/02/16 Javascript
jQuery实现html双向绑定功能示例
2017/10/09 jQuery
React根据宽度自适应高度的示例代码
2017/10/11 Javascript
js核心基础之构造函数constructor用法实例分析
2019/05/11 Javascript
Webpack 4如何动态切割JS注入文件名详解
2019/07/09 Javascript
Vue+webpack实现懒加载过程解析
2020/02/17 Javascript
JavaScript类的继承多种实现方法
2020/05/30 Javascript
element-ui点击查看大图的方法示例
2020/12/14 Javascript
python使用pil生成图片验证码的方法
2015/05/08 Python
Python基于pygame实现的font游戏字体(附源码)
2015/11/11 Python
Python实现屏幕截图的代码及函数详解
2016/10/01 Python
Python MySQL数据库连接池组件pymysqlpool详解
2017/07/07 Python
python matplotlib坐标轴设置的方法
2017/12/05 Python
解决pycharm安装第三方库失败的问题
2020/05/09 Python
keras 获取某层的输入/输出 tensor 尺寸操作
2020/06/10 Python
python 绘制正态曲线的示例
2020/09/24 Python
美国领先的汽车轮胎和轮毂供应商:TireBuyer
2016/07/21 全球购物
观看《永远的雷锋》心得体会
2014/03/12 职场文书
小学毕业典礼主持词
2014/03/27 职场文书
县长群众路线对照检查材料思想汇报
2014/10/02 职场文书
食品安全责任书范本
2015/05/09 职场文书
赤壁观后感(2)
2015/06/15 职场文书
体育教师研修感悟
2015/11/18 职场文书
2019中秋节祝福语大全,提前收藏啦
2019/09/10 职场文书
详解vue中v-for的key唯一性
2021/05/15 Vue.js
Python Django项目和应用的创建详解
2021/11/27 Python
MySQL 数据 data 基本操作
2022/05/04 MySQL