[英]How to plot multiple histograms for unique values from a column using Seaborn?
我在為列中的唯一值繪制多個直方圖時遇到了某些困難,我找不到任何關於此的主題,所以我提前感謝您的幫助。
我有一張表,我需要從中取 2 列:一個具有唯一的運動名稱(足球、排球、曲棍球等),另一個具有訪問次數,代表在某些月份訪問每種運動的人數。 除此之外,此表中還有更多列,但是我們的想法是只取其中的 2 個,並使用 Seaborn 對 plot 多個直方圖。
假設它看起來像這樣:
Sports - Visits
Soccer - 12300
Hockey - 7500
Volleyball - 3600
Hockey - 6800
Volleyball - 5300
Soccer - 9100
Hockey - 4800
etc.
我發現的解決方案不是最好的,並考慮將我當前的表轉換為 pivot,其中運動名稱表示為特征(列),訪問表示為值。
然后你可以運行這樣的東西:
for i in enumerate(df.columns):
plt.subplot(3, 7, i[0]+1)
sns.histplot(task321[i[1]], bins=20)
有沒有一種更簡單的方法可以做到這一點,而無需制作額外的 pivot 表並將名稱作為特征?
我想你在這里想要的是FacetGrid.map()
import pandas as pd
import seaborn as sns
cols = ['Sports','Visits']
data = [['Soccer',12300],
['Hockey',7500],
['Volleyball',3600],
['Hockey',6800],
['Volleyball',5300],
['Soccer',9100],
['Hockey',4800]]
df = pd.DataFrame(data, columns=cols)
g = sns.FacetGrid(df, col="Sports")
g.map(sns.histplot, "Visits")
#g.map(sns.histplot, "Visits", bins=20) #<-- or to set bins
Output:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.