[英]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.