如何有两个直方图但不堆叠?

Posted

技术标签:

【中文标题】如何有两个直方图但不堆叠?【英文标题】:How to have two histograms but not stacked? 【发布时间】:2022-01-07 20:54:45 【问题描述】:

我想要我创建的两个直方图,但它们应该彼此相邻,而不是彼此重叠。你能帮帮我吗?

代码:

import pandas as pd 
members = pd.read_csv("https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2020/2020-09-22/members.csv")
import matplotlib.pyplot as plt
import seaborn as sns

sns.set(palette="Reds_r")
plt.figure(figsize=(15,10))
members_injury_height = members["injury_height_metres"]
members_death_height = members["death_height_metres"]
members_injury_height.hist(density=True,alpha = 0.5,bins = 20) 
members_death_height.hist(density=True, alpha = 0.2 ,bins = 20) 
plt.xlabel("Hauteurs")
plt.ylabel("% de membres morts/blessés")
plt.title("Répartition des hauteurs auxquelles des membres se sont blessés ou sont morts")
fond = plt.gca()
fond.set_facecolor('whitesmoke')
plt.gca().legend(('blessés', 'morts'))

【问题讨论】:

您可能正在寻找的子图:matplotlib.org/stable/api/_as_gen/… 【参考方案1】:

您可以通过将数据行添加到plt.hist 函数内的列表中,将两个数据行合并到一个图中。

查看plt.hist 功能的documentation。它说,您“输入值,这需要单个数组或不需要长度相同的数组序列。”

sns.set(palette="Reds_r")
plt.figure(figsize=(15,10))
members_injury_height = members["injury_height_metres"]
members_death_height = members["death_height_metres"]

plt.hist([members_injury_height, members_death_height], 20)
plt.legend(loc='upper right')
plt.xlabel("Hauteurs")
plt.ylabel("% de membres morts/blessés")
plt.title("Répartition des hauteurs auxquelles des membres se sont blessés ou sont morts")
fond = plt.gca()
fond.set_facecolor('whitesmoke')
plt.gca().legend(('blessés', 'morts'))

您将获得以下信息:

【讨论】:

以上是关于如何有两个直方图但不堆叠?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Pandas DataFrame 开始绘制堆叠时间直方图?

R中的堆叠直方图填充不堆叠

Seaborn 堆叠直方图/条形图

R语言ggplot2可视化:可视化人口金字塔图直方图(堆叠直方图连续变量堆叠直方图离散变量堆叠直方图)密度图箱图(添加抖动数据点tufte箱图多分类变量分组箱图)小提琴图

堆叠直方图不会堆叠

python使用matplotlib可视化堆叠的直方图(stacked histogram plot)多个类别的数据在直方图区间层面累积堆叠起来