如何在Excel中叠加两个直方图?

我的原始数据的前几行看起来是这样的:
0    -4.05291
0    -2.75743
0    -0.374328
1    -23.829
1    -21.5973
1    -21.0714
我想将数据点中的0和1分别绘制成直方图。这并不难做到:插入 -> 图表 -> 插入统计图表,然后选择相关数据即可完成。这些图表包括:

enter image description hereenter image description here

橙色的图表对应于第一个分布(索引为0),蓝色的图表对应于第二个分布(索引为1)。问题是:我想将这两个分布合并成一个带有两种不同颜色的柱状图。然而,我无法弄清楚如何做到这一点。显而易见的方法是右键单击->选择数据->将两个数据系列添加到图表中,但直方图仍然只显示一个数据集。数据肯定存在-如果我更改图表类型,另一个系列就会显示出来-但它在直方图中没有显示出来。 我该如何在Excel中实现这个目标?如果Excel无法实现:哪个程序能够实现?如果有关系的话,我正在使用Excel 2016。

内置的直方图只是玩具,还不能做到你想要的功能。我建议使用公式将两组数据汇总在工作表中,然后在同一个柱状图中将它们一起绘制出来。 - Jon Peltier
在新版本的Excel中,可以以一个更易读的形式展示相同的信息,即箱线图。 - Si Mon
6个回答

另一种选择是使用 Analysis Toolpak的直方图选项。

  1. 确保工具包已启用(如果没有,请转到文件|选项|加载项)
  2. 将数据分列(一个列为您的“0”点,另一个列为“1”点)
  3. 在另一列中创建区间(Excel会自动完成此操作,但您需要确保两个系列具有相同的区间)
  4. 转到数据|数据分析|直方图
  5. 选择您的“0”点和区间,然后将输出放在一个“新工作表ply”上
  6. 对“1”重复此步骤
  7. 合并这两个表格并绘制结果

Input Data Output chart


你在数据设置好之后,是如何绘制这个图的?第七步第二部分。 - Snedden27
如果我没记错的话,我选择了整个区块 A1:C23,然后点击“插入”菜单中的“推荐图表”,选择了柱状图选项。如果这样不起作用,请告诉我,我会找出确切的解决方法。 - Peter Hull

显然(在Excel 2016中),使用直方图似乎无法处理多个系列。 然而,您可以通过条形图获得相同的结果。这需要一些额外的工作,但是做起来相当容易!以下是我所做的步骤。
  1. 创建一个“类别”表(橙色),将值放入不同的范围。
  2. 确保第一列是唯一的ID。
  3. 最大和最小列可以手动填写,也可以使用公式自动填充。只需确保有一个-9999和+9999(或任何其他大值)作为“最低最小值”和“最高最大值”。
  4. 在您的数据表中,添加以下公式(假设橙色表命名为Category):

    =VLOOKUP(SUMPRODUCT(([@Value]>=Category[Min])*([@Value]
  5. 插入一个数据透视表(值:行数的计数)和如下所示的透视图表:

Pivot structure


3哇,Excel比我想象的要复杂得多。按照这个进度,我倒不如开始写一个Python程序来绘制这个图表了... - Allure

使用Past3: https://www.techworld.com/download/office-business/past-314-3330821/ 这是一个免费且功能强大的工具,用于进行统计分析和制作图形说明。 我需要制作组合直方图,而这个程序使得整个过程变得超级简单。我曾经在Excel上苦苦挣扎了很长时间,但后来找到了Past3,并从那时开始大部分情况下都在使用它进行我的图形说明。 这里我将三组数据组合在一个直方图中,所以它的颜色有些重叠看起来有点疯狂,但仍然很好看且非常直观:
example image
只有两种颜色/数据集时效果看起来真的很好。

听起来很酷,但我不知道如何在Past(Past4)中制作包含多个数据系列的直方图。 - Pertinax

我只是路过这里,今天看到了你的问题。我知道这是一个旧问题,你肯定早就找到了解决方案。无论如何,为了回答,我提供我的解决方案。我将使用penguins dataset作为示例,因为我无法访问你的数据。应该很容易适应这些步骤。

选项1:使用Excel

要使用Excel,请尝试使用数据透视表选项。要做到这一点,

从你的数据表中,插入一个新的工作表作为数据透视表数据表链接。 在行和值中放入你想要制作直方图的变量;在这个例子中,我们将使用penguins数据集中的flipper_length_mm。在列中放入将成为类别的变量,我们将使用species。在“值”字段配置选项(右侧的小下箭头)中,选择“计数”以获取值的频率数据透视表字段选择链接。 转到表格上,并在任意一行的值上右键单击,然后选择“分组...”。在这种情况下,我按照5的间隔从170到240进行分组分组为类别链接数据透视表分组为频率表链接。你可以通过再次右键单击已分组的行值类别来轻松重新分组值,并更改分组标准。 一旦你有了频率表,你可以插入一个图表。在光标位于数据透视表上时,选择“插入”。由于Excel不允许从数据透视表中制作直方图,所以我们将使用条形图。这是第一次尝试,老实说有点糟糕,但我们可以调整它第一次尝试链接。 我首先要做的是删除所有的数据透视按钮。要做到这一点,右键单击其中任意一个按钮,然后选择“隐藏所有按钮”选项。 现在,在图表中右键单击任何系列,并选择格式化系列。选择100%的重叠和25%的条宽。你应该在这里第二次尝试链接。调整重叠百分比可能会得到一些有趣的替代方案。 现在选择填充桶图标,并点击每个系列以将填充更改为实心,选择颜色并设置透明度为25%。完成这三个系列的操作后,你应该到达这里:最终图表链接。 你可以在图表上添加轴标签和图表标题,完成之后就可以了。

选项2使用R

如果你了解基础的Python或R,做一个多个直方图比在Excel中要简单得多。我将使用R中的ggplot2,只是个人偏好的问题。

如果你不需要频率表,只需要组合直方图,在R中只需将分类列声明为aes()中的填充即可:

library(tidyverse)
library(palmerpenguins)

penguins |>
  ggplot(aes(x=flipper_length_mm )) +
    geom_histogram(aes(fill=species), 
                   binwidth = 5,
                   colour = 'white', 
                   alpha = 0.5,
                   position = 'identity')+
  theme_minimal()

在R中绘制多个直方图

希望这对你有所帮助,


你离答案很近了。你唯一还需要做的就是在第二个图表中选择系列(点击图表,然后点击柱状图,并确保所有柱子都被选中(见图片1)。按下Ctrl+C,然后点击第一个图表并按下Ctrl+V。我用随机数据做了和你一样的操作,得到了这个结果(见图片2):

Bars selected

End result

红色的条形图是通过复制和粘贴添加的。

由于某种原因,这对我来说不起作用 - 我最终复制了整个图表(不仅仅是系列,而是整个图表),粘贴后得到了两个原始图表。当你说“所有的条形都被选择”时,这是你的意思吗?https://imgur.com/a/7IhCn - Allure
这是因为Michthan使用的是标准柱状图,而你使用的是直方图。据我所知,直方图只能处理一个数据集,而不像你的例子中有两个数据集。 - piko
@piko,我只是进行数据分析并选择直方图,这就是结果。 - Michthan
嗯,奇怪。你用的是哪个版本的Excel?我在Excel 2016中尝试过,就像Allure一样,它会创建一个新的图表。在复制之前,我确保只选择了柱状图,而不是整个图表。 - piko
@piko,我还在使用2010版本,所以无法帮助你获取2016版本。 - Michthan
1每天学点新东西。我没意识到我可以从一个图表中复制一组柱状图并粘贴到另一个图表中。不知道他们是什么时候加入了这个功能。 - Jon Peltier
2实际上,你不能只选择一个系列并复制它。复制一个系列会同时复制图表中的所有系列,并将其粘贴到第二个图表中。在这种情况下,它能够正常工作是因为被复制的图表只有一个系列。真可惜,那会很酷。 - Jon Peltier
我相信Excel中将“直方图”称为垂直柱状图,而将“柱状图”称为水平的。更新的版本使用“直方图”表示直方图(它必须基于已分组的数据分布),而将“列”用于条形图,在其中需要使用已经分组的数据(可以方便地使用数组函数完成)。 - Vincenzooo

按照Peter Hull的指示操作,但不要使用直方图功能,这只适用于一个数据集。你必须使用柱状图。 1. 获取数据分析功能 2. 使用该功能制作直方图,选择数据和区间(所选区间必须对所有数据集相同) 3. 重复步骤2,为所有需要的数据集制作直方图 4. 将你用于每个数据集的相同区间集合复制并粘贴到新表格中一次 5. 将频率复制并粘贴到每个数据集上 6. 进入插入菜单,选择柱形图 7. 选择数据 8. 将每个系列添加为单独的系列 9. 最后将区间选择为横轴,你应该得到一个以柱状图形式呈现的直方图