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写asp详细讲解
Dec 16 Python
用python代码做configure文件
Jul 20 Python
编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法
Jan 20 Python
Python中Django发送带图片和附件的邮件
Mar 31 Python
python批量导入数据进Elasticsearch的实例
May 30 Python
Sanic框架配置操作分析
Jul 17 Python
pyqt 多窗口之间的相互调用方法
Jun 19 Python
Python 使用 Pillow 模块给图片添加文字水印的方法
Aug 30 Python
Python3查找列表中重复元素的个数的3种方法详解
Feb 13 Python
pip安装提示Twisted错误问题(Python3.6.4安装Twisted错误)
May 09 Python
在tensorflow实现直接读取网络的参数(weight and bias)的值
Jun 24 Python
Pytorch中的数据集划分&正则化方法
May 27 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面向对象的使用教程 简单数据库连接
2006/11/25 PHP
一个JavaScript继承的实现
2006/10/24 Javascript
Mootools 1.2教程(2) DOM选择器
2009/09/14 Javascript
用jquery与css打造个性化的单选框和复选框
2010/10/20 Javascript
jQuery表单获取和失去焦点输入框提示效果的实例代码
2013/08/01 Javascript
JQuery EasyUI的使用
2016/02/24 Javascript
JS 对java返回的json格式的数据处理方法
2016/12/05 Javascript
jquery插件锦集【推荐】
2016/12/16 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图的组合双轴图效果示例【附demo源码下载】
2017/03/09 Javascript
Node.js发送HTTP客户端请求并显示响应结果的方法示例
2017/04/12 Javascript
JS 学习总结之正则表达式的懒惰性和贪婪性
2017/07/03 Javascript
three.js实现3D模型展示的示例代码
2017/12/31 Javascript
JavaScript中Object基础内部方法图
2018/02/05 Javascript
使用JS实现导航切换时高亮显示的示例讲解
2018/08/22 Javascript
jsonp跨域及实现百度首页联想功能的方法
2018/08/30 Javascript
微信小程序实现吸顶特效
2020/01/08 Javascript
js表达式与运算符简单操作示例
2020/02/15 Javascript
Python实现远程调用MetaSploit的方法
2014/08/22 Python
在Django框架中编写Contact表单的教程
2015/07/17 Python
Django REST为文件属性输出完整URL的方法
2017/12/18 Python
Pandas读取并修改excel的示例代码
2019/02/17 Python
python配置文件写入过程详解
2019/10/19 Python
用Python在Excel里画出蒙娜丽莎的方法示例
2020/04/28 Python
python函数中将变量名转换成字符串实例
2020/05/11 Python
Python如何实现机器人聊天
2020/09/10 Python
pycharm使用技巧之自动调整代码格式总结
2020/11/04 Python
德国运动鞋网上商店:Afew Store
2018/01/05 全球购物
trivago美国:全球最大的酒店价格比较网站
2018/01/18 全球购物
MSC邮轮官方网站:加勒比海、地中海和世界各地的假期
2018/08/27 全球购物
制作部班长职位说明书
2014/02/26 职场文书
幼儿园评语大全
2014/04/17 职场文书
支部书记四风对照材料
2014/08/28 职场文书
创业计划书之奶茶店开店方案范本!
2019/08/06 职场文书
详解MongoDB的条件查询和排序
2021/06/23 MongoDB
【海涛教你打DOTA】剑圣第一人称视角解说
2022/04/01 DOTA
SQL Server数据库备份和恢复数据库的全过程
2022/06/14 SQL Server