簡體   English   中英

如何使用 Seaborn 為列中的唯一值 plot 多個直方圖?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM