微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用Pareas和Group By绘制堆积直方图

我正在使用如下数据集:

性别,身高,宽度
男,23.4,4.4
女,45.4,4.5

我想要想象堆叠的高度和宽度直方图.我希望每个情节有两个叠加的直方图(每个性别一个).

这是文档中的堆积直方图.如果有三种性别,这可能是一个很好的宽度图.

enter image description here

我希望你理解我的意思,我一直在抨击我的头几个小时.

解决方法:

您在pandas文档中的示例在数据框中有三个单独的列,df.hist()为这三个列生成三个不同的直方图.您的数据结构略有不同.如果您想直接使用matplotlib,可以试试这个:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
np.random.seed(10)
df = pd.DataFrame({"Gender":np.random.choice(["Female", "Male"], 1000), 
                "Height": 30+np.random.randn(1000)*5,
                "Width": 5+np.random.randn(1000)})
df.loc[df["Gender"]=="Male", "Height"] = df.loc[df["Gender"]=="Male", "Height"] + 8

plt.hist(df[df["Gender"]=="Male"]["Height"].reset_index(drop=True), alpha=0.6, label="Male")
plt.hist(df[df["Gender"]=="Female"]["Height"].reset_index(drop=True), alpha=0.6, label="Female")
plt.legend()
plt.show()

这将创建一个像这样的直方图:

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐