如何在FaceGrid中不共享轴

2022-02-27 00:00:00 python numpy pandas matplotlib seaborn

问题描述

我尝试在数据帧df中绘制KDE的每一列,最后一列是布尔值,我使用

在每个图形上绘制两个色调
sns.pairplot(df, hue='last', palette={True: "#FF0000", False: "#0000FF"}, diag_kind='kde')

这为所有列提供了不错的KDE。但是,我并不是真的想成对比较每一列;我只想看看KDE根据last的值有何不同。然而,没有其他方法是那么优雅的。我见过的唯一另一种选择是使用FacetGrid,但它有一个缺陷,即轴限制都是相同的。我只是找不到一种很好的方法来可视化每一列及其与上一个布尔列的关系。


解决方案

我只需要将FacetGrid.__init__sharey中的sharexsharey设置为False

sns.FacetGrid(data=df.melt(id_vars=['last']), col="variable", hue="last", 
              palette={True: "#FF0000", False: "#0000FF"}, sharex=False, 
              sharey=False, col_wrap=4).map(sns.kdeplot, 'value', shade=True)

相关文章