问题描述
我试图用“hue_kws”中的“multiple”堆叠我的 histplot FaceGrid 图
fg1 = sns.FacetGrid(data=df,col="type",col_wrap=3,hue="class",height=3.5,hue_kws={"multiple": 'stack'}
)
fg1.map_dataframe(sns.histplot,x="col_name")
hue_kws={"multiple": 'layer'}
错误更改为
ValueError: `multiple` must be one of ['layer','stack','fill','dodge'],but l was passed.`
所以我猜只传递了值字符串的第一个字母。 我错过了什么?
解决方法
您错误地使用了 hue_kws
。它的 parameter type 文档有“参数字典 -> 值映射列表”。因此,它试图将字符串的第一个字母用作第一个色调级别,将字符串的第二个字母用作第二个色调变量,等等。这不是您想要的。
虽然您可以直接使用 FacetGrid
,但使用 displot
更简单、更安全:
fg1 = sns.displot(df,x="col_name",hue="class",col="type",col_wrap=3,height=3.5,multiple="stack")