绘制与Seaborn FacetGrid相关的热图

fak*_*ake 5 python plot pandas seaborn

我试图用热图创建一个单独的图像,分别代表每个标签的数据点特征的相关性.有了seaborn,我可以像这样为单个类创建一个热图

grouped = df.groupby('target')
sns.heatmap(grouped.get_group('Class_1').corr())
Run Code Online (Sandbox Code Playgroud)

我得到这个有意义:

Class_1相关热图

但后来我尝试列出所有标签,如下所示:

g = sns.FacetGrid(df, col='target')
g.map(lambda grp: sns.heatmap(grp.corr()))
Run Code Online (Sandbox Code Playgroud)

可悲的是,我得到的这对我来说毫无意义:

未能尝试绘制所有类

fak*_*ake 6

事实证明,你可以只用seaborn做到这一点相当conciesely如果你使用map_dataframe的不是map.

g = sns.FacetGrid(df, col='target')
g.map_dataframe(lambda data, color: sns.heatmap(data.corr(), linewidths=0))
Run Code Online (Sandbox Code Playgroud)

@mwaskom在他的评论中指出,明确设置色图的限制可能是一个好主意,这样可以更直接地比较不同的方面.该文档描述的相关heatmap参数:

vmin,vmax:浮动,可选

用于锚定色彩映射的值,否则它们是从数据和其他关键字参数推断出来的.当推断出发散数据集时,可以忽略这些值中的一个.