gpt4 book ai didi

python - 我如何绘制分成类别的数据的相对频率?

转载 作者:行者123 更新时间:2023-12-03 23:42:07 24 4
gpt4 key购买 nike

我想根据类别标签获取人们权重的相对频率,然后将其绘制为条形图,如下所示:
enter image description here
数据框如下所示:

Weight   Category
83.8 A
87.3 A
75.1 B
70.9 A
69.8 C
75.5 B
... ...
我想将每个类别的权重提取到自己的数据框中,并设法获得一个类别的相对频率,但我不确定如何将它们一起绘制。
# This holds the total number of people in each category, with categories in alphabetical order
counts = df.groupby("Category")["Weight"].count()

catA = df.loc[df["Category"] == "A"]["Weight"].reset_index().drop(columns="index")
catA["bucket"] = pd.cut(catA["Weight"], 10)

newA = catA[["bucket", "Weight"]].groupby("bucket").count()
newE["relative"] = newE["Weight"] / counts[0]

ax = newA["relative"].plot(kind="bar", title="Relative Frequency of Weight for Category A")
ax.set(xlabel="Weight Bucket", ylabel="Relative Frequency (%)")
ax.tick_params(axis="x", labelrotation=45)
plt.show()

最佳答案

Seaborn 是一个基于 matplotlib 的 Python 数据可视化库。它提供了一个高级界面,用于绘制有吸引力且信息丰富的统计图形。 ( https://seaborn.pydata.org/ )
你不会像使用原始 matplotlib 那样灵活,但也许它只适合你,并为你提供强大的默认值。
使用带有 Hue 和 multiple=dodge 的 histplot 似乎可以满足您的需求。来自 https://seaborn.pydata.org/generated/seaborn.histplot.html#seaborn.histplot 的官方文档

sns.histplot(data=tips, x="day", hue="sex", multiple="dodge", shrink=.8)
seaborn

关于python - 我如何绘制分成类别的数据的相对频率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65150022/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com