Search code examples
pythonpandasseabornhistogramdisplot

How to plot histogram subplots for each group


When I run the following code, I get 4 different histograms separated by groups. How can I achieve the same type of visualization with 4 different sns.distplot() also separated by their groups?

df = pd.DataFrame({
    "group": [1, 1, 2, 2, 3, 3, 4, 4],
    "similarity": [0.1, 0.2, 0.35, 0.6, 0.7, 0.25, 0.15, 0.55]
})

df['similarity'].hist(by=df['group'])

enter image description here


Solution

  • You can use FacetGrid from seaborn:

    import seaborn as sns
    
    g = sns.FacetGrid(data=df, col='group', col_wrap=2)
    g.map(sns.histplot, 'similarity')
    

    Output:

    enter image description here