繁体   English   中英

使用熊猫+ Seaborn将y轴设置为色相计数

[英]Set y-axis as count of hue using pandas + seaborn

我有一个看起来像这样的数据框:

   unique_id  element   day-only
0   52221039    4       28
1   5212263     3       28
2   5244438     LS      27
3   4975676     4       22
4   9023691     1       24

我正在尝试获取一个lmplot ,该lmplot映射出element每天出现的频率,基本上与以下计数图相同。

fig = sns.countplot(x="day-only", hue="element", data=df, hue_order=["1","2","3","4","LS","EA"], palette=color_element)

但是,我似乎找不到一种将element计数映射到y值的方法。 我试过了

horse = df["element"].value_counts()
count_of_y = numpy.asarray(horse)

然后, fig = sns.lmplot(x="day-only", y=count_of_y, hue="element", data=df)

当然,这并不是可行的,因为seaborn文档告诉我y必须等于数据框中的一列。 而且我似乎找不到一种方法来获取简单的元素计数作为我在y轴上的度量。 我也尝试过计算我的unique_id ,但这也没有用。

这似乎是一个非常简单的问题,但我似乎找不到解决方案! 谢谢你的帮助!

我已经意识到我的错误所在,并解决了我的问题。 我通过以下方式创建了一个新的数据框:

count_of_y = df["element"].groupby(df["day-only"]).value_counts().rename("counts").reset_index()
count_of_y

这给了我三栏,在正确的位置计数。 然后,我就可以对此进行绘图。

fig = sns.lmplot(x="day-only", y="counts", hue="element", data=count_of_y, hue_order=["1","2","3","4","LS", "EA"], palette=color_element)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM