删除Seaborn Catplot中未使用的类别

时间:2019-09-30 12:35:38

标签: python matplotlib seaborn

我正在尝试使用seaborn库来可视化数据集,但是在生成的箱图中,我看到了许多空插槽。

数据分为四列:Cat1 | Cat2 | Cat3 | Value
Cat1Cat2Cat3都包含分类值,并且“值”是与类别的配置相关联的值的样本。 整理数据,因此可以针对不同的值重复类别的每种配置。 数据框(包含虚假值)的示例为:

Cat1 Cat2 Cat3  Value
  A    x    1   1.00
  A    x    1   1.05
  A    x    2   1.00
  A    x    2   1.05
  A    y    1   1.00
  A    y    1   1.05
  A    y    2   1.00
  A    y    2   1.05
  B    y    1   1.00
  B    y    1   1.05
  B    y    2   1.00
  B    y    2   1.05
  A    z    1   1.00
  A    z    1   1.05
  A    z    2   1.00
  A    z    2   1.05
  B    z    1   1.00
  B    z    1   1.05
  B    z    2   1.00
  B    z    2   1.05

我一直在尝试使用[seaborn catplot函数] [(https://seaborn.pydata.org/generated/seaborn.catplot.html)] 1绘制数据(如下面的代码片段所示)

import seaborn as sns

g = sns.catplot(data=df, x="Cat1", y="Value", hue="Cat3", col="Cat2", kind="box", notch=True, legend=False).set_titles("{col_name}")
plt.show()

从数据中应该清楚的是,对于x(在Cat2中),仅允许A,而对于B没有数据。然而,渲染的箱线图在x的子图中显示了B的空槽。 (请参见此seaborn plot showing an empty slot for a boxplot in the first subplot

我如何才能折叠这些空插槽(实际数据包含其中的多个实例),理想情况下仍可以使用catplot函数(或类似的功能)。到目前为止,我尝试过传递关键字sharex=Falsefacet_kws={"dropna":True},但是它们都没有达到预期的效果。

0 个答案:

没有答案