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脚本批量下载DesktopNexus壁纸的教程
May 06 Python
Python中的super用法详解
May 28 Python
Python生成器定义与简单用法实例分析
Apr 30 Python
python 剪切移动文件的实现代码
Aug 02 Python
Python二叉搜索树与双向链表转换算法示例
Mar 02 Python
python 模拟贷款卡号生成规则过程解析
Aug 30 Python
用python爬取历史天气数据的方法示例
Dec 30 Python
给Python学习者的文件读写指南(含基础与进阶)
Jan 29 Python
PyCharm无法引用自身项目解决方式
Feb 12 Python
keras训练曲线,混淆矩阵,CNN层输出可视化实例
Jun 15 Python
Python 机器学习工具包SKlearn的安装与使用
May 14 Python
python playwright之元素定位示例详解
Jul 23 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
PHPShop存在多个安全漏洞
2006/10/09 PHP
搜索引擎技术核心揭密
2006/10/09 PHP
php自定义函数call_user_func和call_user_func_array详解
2011/07/14 PHP
利用php获得flv视频长度的实例代码
2017/10/26 PHP
PHP开发的文字水印,缩略图,图片水印实现类与用法示例
2019/04/12 PHP
javascript 读取图片文件的大小
2009/06/25 Javascript
jQuery 1.5最新版本的改进细节分析
2011/01/19 Javascript
基于JQuery的日期联动实现代码
2011/02/24 Javascript
JQuery 实现在同一页面锚点链接之间的平滑滚动
2014/10/29 Javascript
js中取得变量绝对值的方法
2015/01/03 Javascript
JavaScript实现跑马灯抽奖活动实例代码解析与优化(一)
2016/02/16 Javascript
jQuery基于扩展简单实现倒计时功能的方法
2016/05/14 Javascript
详解webpack多页面配置记录
2018/01/22 Javascript
Vue登录注册并保持登录状态的方法
2018/08/17 Javascript
Vue.js结合bootstrap前端实现分页和排序效果
2018/12/29 Javascript
微信小程序--获取用户地理位置名称(无须用户授权)的方法
2019/04/29 Javascript
layui使用表格渲染获取行数据的例子
2019/09/13 Javascript
解决vue一个页面中复用同一个echarts组件的问题
2020/07/19 Javascript
[43:03]完美世界DOTA2联赛PWL S2 PXG vs Magma 第二场 11.21
2020/11/24 DOTA
Python使用Scrapy保存控制台信息到文本解析
2017/12/27 Python
浅谈Python使用Bottle来提供一个简单的web服务
2017/12/27 Python
python读取和保存视频文件
2018/04/16 Python
Python中list循环遍历删除数据的正确方法
2019/09/02 Python
使用python实现CGI环境搭建过程解析
2020/04/28 Python
Brydge英国:适用于Apple iPad和Microsoft Surface Pro的蓝牙键盘
2019/05/16 全球购物
德国婴儿服装和婴儿用品购买网站:Baby Sweets
2019/12/08 全球购物
SOA的常见陷阱或者误解是什么
2014/10/05 面试题
成人毕业生自我鉴定
2013/10/18 职场文书
社区班子对照检查材料
2014/08/27 职场文书
领导班子四风问题对照检查材料
2014/09/27 职场文书
2014年六五普法工作总结
2014/11/25 职场文书
督导岗位职责
2015/02/04 职场文书
公司人力资源管理制度
2015/08/05 职场文书
2016年全国助残日活动总结
2016/04/01 职场文书
SONY AN-LP1 短波有源天线放大器
2021/04/22 无线电
MySQL系列之二 多实例配置
2021/07/02 MySQL