使用matplotlib创建百分比堆积柱状图的思路与堆积柱状图类似,只不过bottom参数累计的不是数值而是百分比,因此,需要事先计算每组柱子的数值总和,进而求百分比。

未使用numpy版本

适用于少量数据,数据结构需要手动构造。

import matplotlib.pyplot as plt

labels = ['G1', 'G2', 'G3', 'G4', 'G5']

first = [20, 34, 30, 35, 27]

second = [25, 32, 34, 20, 25]

third = [21, 31, 37, 21, 28]

fourth = [26, 31, 35, 27, 21]

data = [first, second, third, fourth]

x = range(len(labels))

width = 0.35

# 将bottom_y元素都初始化为0

bottom_y = [0] * len(labels)

# 计算每组柱子的总和,为计算百分比做准备

sums = [sum(i) for i in zip(first, second, third, fourth)]

for i in data:

# 计算每个柱子的高度,即百分比

y = [a/b for a, b in zip(i, sums)]

plt.bar(x, y, width, bottom=bottom_y)

# 计算bottom参数的位置

bottom_y = [(a+b) for a, b in zip(y, bottom_y)]

plt.xticks(x, labels)

plt.title('Percent stacked bar ')

plt.show()

使用numpy版本

第一个版本的缺陷在于数据需要手动构造,而且计算稍微繁琐一些。

使用numpy便于处理规模比较大且已存储在文件中数据的数据,计算更简便。

import numpy as np

import matplotlib.pyplot as plt

labels = ['G1', 'G2', 'G3', 'G4', 'G5']

first = [20, 34, 30, 35, 27]

second = [25, 32, 34, 20, 25]

third = [21, 31, 37, 21, 28]

fourth = [26, 31, 35, 27, 21]

data = [first, second, third, fourth]

x = range(len(labels))

width = 0.35

# 将bottom_y元素都初始化为0

bottom_y = np.zeros(len(labels))

data = np.array(data)

# 按列计算计算每组柱子的总和,为计算百分比做准备

sums = np.sum(data, axis=0)

for i in data:

# 计算每个柱子的高度,即百分比

y = i / sums

plt.bar(x, y, width, bottom=bottom_y)

# 计算bottom参数的位置

bottom_y = y + bottom_y

plt.xticks(x, labels)

plt.title('Percent stacked bar ')

plt.show()

到此这篇关于matplotlib bar()实现百分比堆积柱状图 的文章就介绍到这了,更多相关matplotlib 百分比堆积柱状图 内容请搜索猪先飞以前的文章或继续浏览下面的相关文章希望大家以后多多支持猪先飞!

python bar图 百分比_matplotlib bar()实现百分比堆积柱状图相关推荐

  1. python 折线图 尾部_Matplotlib 折线图plot()所有用法详解

    散点图和折线图是数据分析中最常用的两种图形.其中,折线图用于分析自变量和因变量之间的趋势关系,最适合用于显示随着时间而变化的连续数据,同时还可以看出数量的差异,增长情况. Matplotlib 中绘制 ...

  2. python背景图颜色_matplotlib作图,刻度和背景颜色

    本文的代码示例,主要是记录在用matplotlib作图时,如何设置坐标刻度和背景颜色. import numpy as np import matplotlib.pyplot as plt x = n ...

  3. python常用画图(分段折线图、多变量柱状图、扇形图、堆积折线图、百分比堆积柱状图)工具代码汇总

    ​​​​​​在工作中常使用python绘制各类图形,之前通过CSDN学习到了很多,现在在这里对各类绘图工具及用法做一个总结,我将附上代码以及图片效果,以方便大家使用python进行图片绘制.需要注意一 ...

  4. python数据可视化 - matplotlib专题:带数据标签的双batch的Bar图绘制示例

    基于matplotlib的双Batch带标签bar图生成函数 李俊才 邮箱:291148484@163.com [代码实现] import matplotlib import matplotlib.p ...

  5. matplotlib之pyplot模块之柱状图(bar():百分比堆积柱状图)

    使用matplotlib创建百分比堆积柱状图的思路与堆积柱状图类似,只不过bottom参数累计的不是数值而是百分比,因此,需要事先计算每组柱子的数值总和,进而求百分比. 未使用numpy版本 适用于少 ...

  6. python簇状柱形图_Matlab—颜色图、簇状堆积柱状图和阴影Error Bar

    Matlab里内置了很多绘图函数,也有很多开源的可以下载(Google很容易检索到).这里介绍三种最近碰到的主要用于Paper里的几种图,有的可以用Excel绘制,但是相当繁琐,有那个时间去百度去谷歌 ...

  7. Python pyecharts Bar图

    本篇博客主要是针对pyecharts的bar图的一些代码的实战与解释,都是一些对官网的bar图的理解.>>pyecharts官网 文章目录 一.简介 二.整理数据 1.配置主题 2.柱状图 ...

  8. Python绘制单数据系列柱状图、多数据系列柱状图、堆积柱状图、百分比堆积柱状图

    1.单数据系列柱状图: 运行结果:  具体代码: #引入工具包 import matplotlib.pyplot as plt import numpy as np#设置中文字体,如果不需要中文,则可 ...

  9. Cytoscape制作带bar图和pie图节点的网络图

    采用cytoscape制作带bar图和pie图节点的网络图 作者:中科院微生物所 陈亮博士 本教程旨在告诉大家如何使用cytoscape根据Node信息表格制作带有barplot信息节点的网络图.以安 ...

最新文章

  1. 如何删除一个员工编号及其全部主数据和事务数据?
  2. php 警告提示框,关于javascript:php重定向到带有警告对话框的页面
  3. 单片机学习--3D动画演示单片机工作原理
  4. nginx https 访问http_Nginx之Http模块系列之访问控制模块
  5. 小程序向Java传值,微信小程序 页面传值详解
  6. js实现图片上传预览及进度条
  7. ​【文末有福利】连续型随机变量及实例详解
  8. 淘宝应用柔性架构的探索
  9. bootstraptable 加载完成回调函数_牛皮了!头一次见有大佬把「JavaScript中的回调函数」详解得如此清晰明了...
  10. 【例9.3】求最长不下降序列
  11. 计算机里的e盘 不能应用,我的电脑里的e盘打不开是怎么回事
  12. 2019BJFU 网站设计(孙俏-web前端开发)实验代码-181002222
  13. Introduction to Modern cryptograhy阅读笔记(二)
  14. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
  15. 原创 | GIS属性表转为Excel表格
  16. mac php7.2,MAC下更新自带的PHP版本到7.2
  17. 资金流学习-成本分析
  18. 《星际争霸》单位语音中英文完全版
  19. 数学建模算法与应用——整数规划
  20. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; mysql的xml文件出现异常解决方案

热门文章

  1. Android开发——用户在屏幕上的手势识别
  2. Hexo个人博客搭建教程
  3. LTE学习笔记--PHY--TM模式
  4. 惠普136w耗材贵吗_性价比利器 惠普MFP 136w轻体验
  5. 获取163联系人名字和邮箱地址
  6. 【数据挖掘】利用md5查找重复文件
  7. 第一篇学术论文经验总结(草稿)
  8. 2019小米java开发
  9. 用户管理“明星”工具——在线客服系统
  10. python matplotlib绘制等高线、等值线图