如何在 matplotlib 中并排绘制堆叠直方图?

2023-12-04

我希望在 matplotlib 中绘制两个并排堆叠的直方图(类似于下面的示例图像)。 我尝试过几种变体

bins = np.arange(10)
a1,b1,c1 =plt.hist([arr1,arr2,arr3],bins,stacked=True)
a2,b2,c2 =plt.hist([arr4,arr5,arr6],bins,stacked=True)

但似乎无法避免让第二个图直接覆盖第一个图。 关于如何解决这个问题有什么想法吗?

Stacked side-by-side histogram example


图片显示了一个条形图而不是一个直方图。我指出这一点,不仅因为我是一个令人讨厌的学究,而且因为我相信它可以帮助您找到正确的工具:-)
确实,为了你的目的plt.bar可能是一个更好的选择plt.hist.

根据Scironic的建议,我修改了这个演示示例制作堆叠的条形,就像你图中的那样。

向位置索引添加偏移量(第一个参数plt.bar()) 是防止条形图相互重叠的原因。

import numpy as np
import matplotlib.pyplot as plt

N = 5
men1 = (130, 90, 70, 64, 55)
men2 = (120, 85, 62, 50, 53)
men3 = (100, 70, 60, 45, 50)

ind = np.arange(N) + .15 # the x locations for the groups
width = 0.35       # the width of the bars

fig, ax = plt.subplots()
rects1 = ax.bar(ind, men1, width, color='g') 
rects2 = ax.bar(ind, men2, width, color='r') 
rects3 = ax.bar(ind, men3, width, color='b')

women4 = (140, 90, 78, 65, 50)
women5 = (130, 80, 70, 60, 45)
women6 = (120, 60, 60, 55, 44)

xtra_space = 0.05
rects2 = ax.bar(ind + width + xtra_space , women1, width, color='orange') 
rects2 = ax.bar(ind + width + xtra_space, women2, width, color='cyan') 
rects2 = ax.bar(ind + width + xtra_space, women3, width, color='purple')

# add some text for labels, title and axes ticks
ax.set_ylabel('Population, millions')
ax.set_title('Population: Age Structure')

ax.set_xticks(ind+width+xtra_space)
ax.set_xticklabels( ('USA', 'Brazil', 'Russia', 'Japan', 'Mexico') )

plt.show()

enter image description here

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

如何在 matplotlib 中并排绘制堆叠直方图? 的相关文章

随机推荐

  • 禁用 Asp.Net WebAPI 中的默认验证

    我想完全禁用 WebAPI 控制器的模型验证 我尝试了几种方法来为 MVC 做到这一点 但似乎 WebAPI 没有得到这些方法 就我而言 自定义格式化程序创建并填充对象 默认验证发生 对象传递给控制器 我的代码开始工作 我正在尝试完全删除第
  • 有没有办法只接受 JTextField 中的数字值?

    有没有办法只接受 a 中的数字值JTextField 有什么特殊的方法吗 由于这个问题经常出现 所以我在这个答案上投入了比平时更多的努力 我的投票投给了JFormattedTextField IMO 每个 Swing 开发人员都应该在他 她
  • R:具有重复数据框的扩展函数

    我有一个需要旋转的数据框 但该数据框有重复的标识符 所以spread函数给出错误Error Duplicate identifiers for rows 5 6 Dimension c A A B B A A Date c Mon Tue
  • 无法在我的 Mac Mountain Lion 上运行 Composer - openssl 扩展

    我安装了几个需要 Composer 的 CMS 两天以来我遇到了错误 无法继续 RuntimeException You must enable the openssl extension to download files via htt
  • Powershell 中的管道

    我正在阅读有关 PowerShell 中管道如何工作的信息 about 管道 并了解管道一次传送一个对象 So this Get Service Format Table Property Name DependentServices 与此
  • 将外键关系限制为相关子类型的行

    概述 我试图表示数据库中的几种类型的实体 这些实体具有许多共同的基本字段 然后每个实体都有一些不与其他类型的实体共享的附加字段 工作流程经常涉及将实体列出在一起 因此我决定使用一个包含其公共字段的表 然后每个实体将拥有自己的包含附加字段的表
  • 查找单击按钮的类

    我知道我已经问过这个问题很多次了 但我仍然没有找到正确的答案 num 只需要显示在单击按钮的类中
  • C#程序中TCP Socket没有停止接收数据

    Android 2 2 手机中的 Java Android 应用程序正在将字符串数据发送到 C 程序 C 程序接收数据并正确显示仅限第一次 然后它就不会停止接收数据 但由于没有数据 所以显示为0作为接收到的数据 在调试时并没有接收到Java
  • Swift 3 - 在视图控制器之间传递数据,然后传递到另一个视图控制器

    我正在尝试执行一个segue 但它不起作用 我想做的是发送我的视图控制器 主 中文本字段中的数据 之后我想将其发送到名为 OperationsController 的 ViewController 然后将其发送到另一个视图 CreateCo
  • 用向量 R 中的每个其他值减去向量中的每个值

    假设我有一个矩阵 data lt matrix seq 1 6 ncol 2 nrow 3 byrow TRUE A B 1 1 2 2 3 4 3 5 6 从 A 列开始 我想创建 A 中每个数字与 A 中每个其他数字之间的成对差异向量
  • 使 Windows Mobile 设备模拟蓝牙 HID 设备

    我正在寻找一种通过蓝牙将 Windows Mobile 设备连接到 PC 并使其作为 HID 设备 即键盘或鼠标 显示在 PC 上的方法 我想这主要是修改 Windows Mobile 设备上可用的蓝牙配置文件的问题 以便它公开蓝牙 HID
  • C# 中检测系统从睡眠状态唤醒的事件

    我需要检测系统电源状态模式 准确地说 我需要一个当 Windows 7 从睡眠状态唤醒时触发的事件 我已经在使用 SystemEvents PowerModeChanged SystemEvents PowerModeChanged 但此事
  • FFMpeg 复制流而不转码

    我正在尝试将多个文件中的所有流复制到一个文件中 而不对流进行转码 你经常做的事情ffmpeg效用由ffmpeg i file with audio mp4 i file with video mp4 c copy shortest file
  • 从应用程序播放音频,即使它在后台

    我很难确定如何在 iOS 应用程序的后台播放音频 我有一个 NSTimer 希望在达到 5 分钟时播放声音 即使在后台也是如此 我已经启用了音频背景模式 但不确定如何实现我的想法 在功能下选择以下选项 在您的 plist 中 确保 应用程序
  • 打印传递给函数的变量名称

    在某些情况下 我想打印调试样式的输出 如下所示 module test py def f a 5 b 8 debug a b line 18 我想要debug函数打印以下内容 debug info at test py 18 functio
  • 使用 jQuery“取消嵌套”嵌套块引用(以适应 tumblr 2015 年 9 月更新)

    我正在为一个转发量很大的博客开发一个新的 tumblr 主题 根据 tumblr 对评论链的最新更新 有些帖子变得非常冗长 虽然它在我的仪表板上看起来不错 但由于嵌套的块引用 它对我的 博客造成了严重破坏 我想模仿评论在我的仪表板上的外观
  • 如何对连续范围进行分组

    我知道一些基本的 SQL 但这个超出了我的能力范围 我看了高低 但没有骰子 我需要查看以下数据 我可以在应用程序层代码中执行此操作 但不幸的是 对于这一特定的情况 代码必须放在数据层中 我正在使用 T SQL Table Date Crew
  • 为 Android 构建 FFMPEG 3.1.4

    I used this and this构建最新版本的方法 3 1 4 FFMPEG安卓版本 构建成功 我有几个文件夹sources headers o files 但遗憾的是没有 so我需要的文件 是否有一些更新的脚本用于构建最新的FFM
  • Selenium 中的 SearchContext 和 WebDriver 接口有什么区别或者它们之间有什么关系?

    我在某个地方看到我们可以同时使用 WebDriver driver new FirefoxDriver or SearchContext driver new FirefoxDriver 我很困惑这两个不同的接口有什么区别 搜索上下文 搜索
  • 如何在 matplotlib 中并排绘制堆叠直方图?

    我希望在 matplotlib 中绘制两个并排堆叠的直方图 类似于下面的示例图像 我尝试过几种变体 bins np arange 10 a1 b1 c1 plt hist arr1 arr2 arr3 bins stacked True a