Facetgrid 绘制堆叠归一化计数 - Seaborn

问题描述

我的目标是使用 Seaborn facet grid 来绘制值的计数,但归一化,而不是纯粹的计数。使用下面,每一行都应显示 Item 中的每个唯一值。 x 轴应显示 Num,值来自 Label

然而,每一行都没有被分区。为每个 Item 显示相同的数据。

import pandas as pd
import Seaborn as sns

df = pd.DataFrame({      
    'Num' : [1,2,1,3,2],'Label' : ['A','B','C','A','B'],'Item' : ['Up','Left','Up','Down','Right','Right'],})

g = sns.FacetGrid(df,row = 'Item',row_order = ['Up','Left'],aspect = 2,height = 4,sharex = True,legend_out = True
              )

g.map(sns.histplot,x = 'Num',hue = 'Label',data = df,multiple = 'fill',shrink=.8) 
g.add_legend()

解决方法

也许你可以试试g.map_dataframe(sns.histplot,x='Num',hue = 'Label',multiple = 'fill',shrink=.8)。我不擅长 seaborn,我只是在 https://seaborn.pydata.org/generated/seaborn.FacetGrid.html 上查了一下,map_dataframe 似乎比 map 更有效。