更高效的 matplotlib 堆积条形图 - 如何计算底部值

2024-04-14

我需要一些帮助,使用 matlibplot 在 python 中制作一组堆积条形图。我的基本代码如下,但我的问题是如何生成值bottom对于第二个之外的任何元素有效率的。我可以让示例图正确堆叠(始终从下到上为 a、b、c、d)

import numpy as np
import matplotlib.pyplot as plt

ind = np.arange(3)

a = [3,6,9]
b = [2,7,1]
c = [0,3,1]
d = [4,0,3]

p1 = plt.bar(ind, a, 1, color='#ff3333')
p2 = plt.bar(ind, b, 1, color='#33ff33', bottom=a)
p3 = plt.bar(ind, c, 1, color='#3333ff', bottom=[a[j] +b[j] for j in range(len(a))])
p4 = plt.bar(ind, d, 1, color='#33ffff', bottom=[a[j] +b[j] +c[j] for j in range(len(a))])

plt.show()

我的最终代码可能有非常多的条形,并且不断扩展的函数 Bottom = [...] 不可能是最佳解决方案。如果您也能解释我需要如何获取该值,那就太好了。有没有 numpy 函数。

非常感谢!!! PS我已经寻找答案,但我不明白我能找到什么。


我最近刚刚遇到同样的问题。后来我决定用一堂精彩的课来结束这一切。对于任何感兴趣的人,您可以在这里获得堆叠条形图类的实现:

https://github.com/minillinim/stackedBarGraph https://github.com/minillinim/stackedBarGraph

它允许缩放堆叠图以及设置条形宽度和设置高度(具有缩放内部)。

给定一个这样的数据集:

    d = np.array([[101.,0.,0.,0.,0.,0.,0.],
                  [92.,3.,0.,4.,5.,6.,0.],
                  [56.,7.,8.,9.,23.,4.,5.],
                  [81.,2.,4.,5.,32.,33.,4.],
                  [0.,45.,2.,3.,45.,67.,8.],
                  [99.,5.,0.,0.,0.,43.,56.]])

    d_heights = [1.,2.,3.,4.,5.,6.]
    d_widths = [.5,1.,3.,2.,1.,2.]
    d_labels = ["fred","julie","sam","peter","rob","baz"]
    d_colors = ['#2166ac',
                '#fee090',
                '#fdbb84',
                '#fc8d59',
                '#e34a33',
                '#b30000',
                '#777777']

它可以制作这样的图像:

GPLv3 充满爱。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更高效的 matplotlib 堆积条形图 - 如何计算底部值 的相关文章

随机推荐

  • Nokogiri 在 OS X 上安装失败

    关于此问题的帖子有很多 但是 Nokogiri 版本 1 6 x 1 7 x 或 1 8 x 无法在 OS X 上安装可能有多种原因 相关文章 OS X 10 6 安装 Nokogiri https stackoverflow com qu
  • 让 Visual Studio Code 将无扩展名文件语法高亮显示为 bash 脚本?

    我已经开始编写一些 bash 脚本来增强 git 使用视觉工作室代码 https code visualstudio com 我希望编辑器在执行此操作时使用语法突出显示 这些文件没有扩展名 否则 git 不会将它们作为附加命令 以下是此类脚
  • 启动请求重复得太快

    我正在编写 bash 脚本 但经常遇到这个问题 当我尝试start or stop我经常得到的服务 start request repeated too quickly 我怎么解决这个问题 例如 当我尝试重新启动 docker 或 open
  • 如何防止Python中的某些特定键“发送”输入

    我正在尝试使用Python 来代替AutoHotkey 我已经设置了 pynput 来监听按键 并且大部分内容都按照我的预期工作 但是 我有一个问题 如果我通过监听键盘并在按键上执行某些操作来 重新绑定 一个键 它仍然会发送原始命令 我不了
  • WinRT 中的 ICMP Ping - 可能吗? [复制]

    这个问题在这里已经有答案了 如何在 WinRT 现代 UI 应用程序中执行 ICMP ping 目前 WinRT 中未实现 Ping 请参阅相关问题here https stackoverflow com questions 1095234
  • 为什么我的汇编程序没有将 r1 设置为正确的值?

    我正在 LC3 机器上编写汇编程序 我的汇编程序是一个 LC3 程序 它将 R2 和 R3 相乘并将结果存储在 R1 中 这是我的源代码 带注释 Sets pc to this address at start of program ORI
  • 如何在文本中添加/插入 xml 节点

    我正在生成一个基于 XML 的开放文档格式 odt 的文本文档 但是在文本段落中添加制表符时遇到问题 当我在 Open Office 应用程序中创建它并保存文档时 该段落的内部 XML 表示形式为
  • 最小最大价格范围验证不适用于 jquery.validate.js

    我正在使用的表单验证https jqueryvalidation org https jqueryvalidation org 我已经通过 dependent 属性实现了自定义验证规则 以下是验证错误规则 如果未选择两个价格框 则不会显示错
  • 如果字符串是...然后用图像替换它?

    我有以下代码 对此有三种可能的字符串输出 food drink food Drink 我想用小图标替换这些字符串 例如代表 饮料 的玻璃杯 有没有一种简单的方法可以用 PHP 来做到这一点 Thanks 您可以通过数组映射值 items a
  • 鉴于其中一些变量可能不存在,如何保留变量列表?

    我有100个dta文件 我有一个我需要的变量列表keep并即时保存临时副本 某些变量可能存在于某个特定的环境中 也可能不存在dta 我需要 Stata 来保留 a 中存在的所有变量dta并忽略那些不存在的 下面的代码有错误的语法 但它可以作
  • div 内的左/右浮动按钮

    如何让按钮只浮动在div区域 这是我的 CSS 和 HTML 示例 test width 60 display inline overflow auto white space nowrap margin 0px auto div clas
  • 将自定义中心按钮添加到选项卡栏的最佳方法是什么?

    许多应用程序都有一个标准选项卡栏 中间有一个自定义按钮 可以执行一些特殊功能 一些例子可以在这里找到 http mobile patterns com custom tab navigation http mobile patterns c
  • Powershell Get-ChildItem 目录中的最新文件

    我们生成名称中带有日期的文件 下面是日期的通配符 我想获取最后一个文件 并且包含该文件的文件夹的标题中也有一个日期 仅月份 我正在使用 PowerShell 并安排它每天运行 这是到目前为止的脚本 LastFile DailyFile co
  • 使用项目资源(WPF)的图像源

    我添加了一堆图像作为项目资源 现在我想在我的 WPF 应用程序中使用图像控件来使用它们 如何将资源分配给图像控件的源 首先 在 Visual Studio 的属性窗口中将图像文件标记为 资源 然后您可以很容易地使用文件名引用资源
  • 多个 bitbucket 帐户的 ssh 配置 - 简单的示例,但出现“远程端意外挂断”

    假设我的 bitbucket 用户名是 jon 并且我有一些个人项目https bitbucket org jon 假设我加入了一个开发团队 该团队有一个名为 devteam 的 bitbucket 帐户 可以在以下位置找到该帐户 http
  • 一个月中的一周熊猫

    我试图每个月坚持一周 有些月份可能有四个星期 有些可能有五个星期 对于每个日期 我想知道它属于哪一周 我最感兴趣的是本月的最后一周 data pd DataFrame pd date range 1 1 2000 periods 100 f
  • 如何使用反射更改 kotlin 私有 val?

    我可以使用反射访问私有 val 值 如下所示 fun main val mainClass MainClass val f MainClass class memberProperties find it name info f let i
  • 一瞥让一切都慢了 50 倍

    我一直在使用glimpse来尝试解决一些页面速度慢的问题 结果发现glipse就是原因 页面请求超过 30000 秒 毫不夸张地说它们是即时的 所以我一直在追鬼 当导致如此速度差异时 我如何使用一瞥来查看一切需要多长时间 我是否配置错误或者
  • 如何在 iPad 硬件中(而不是在模拟器中)测试 iPad 应用程序

    在 iPad 模拟器上完成构建和测试后 我需要在 iPad 硬件上测试该应用程序 我怎样才能做到这一点 如果您已支付开发人员密钥的费用 则应该能够打开管理器窗口 设置您的设备 然后选择设备而不是模拟器作为 XCode 中的目标 看苹果的文档
  • 更高效的 matplotlib 堆积条形图 - 如何计算底部值

    我需要一些帮助 使用 matlibplot 在 python 中制作一组堆积条形图 我的基本代码如下 但我的问题是如何生成值bottom对于第二个之外的任何元素有效率的 我可以让示例图正确堆叠 始终从下到上为 a b c d import