Matplotlib Seaborn:排列多个面网格

Matplotlib Seaborn:排列多个面网格,matplotlib,seaborn,Matplotlib,Seaborn,我理解西伯恩人有些困难。 我的数据中有16个共格列,我想使用countplot来显示这些值的分布。此外,我还有一个目标变量Y,它必须包含类。现在我希望countplot的计算依赖于类。因此,对于我的16个输入变量中的每一个,我都希望有子批(对于类0和类1)。 我可以通过以下方式实现这一点(不确定这是否是最佳解决方案): 但现在我希望这16个图是在一个4x4的网格中。我试过: fig, axes =plt.subplots(4, 4, figsize=(18, 10)) for col, ax

我理解西伯恩人有些困难。 我的数据中有16个共格列,我想使用countplot来显示这些值的分布。此外,我还有一个目标变量Y,它必须包含类。现在我希望countplot的计算依赖于类。因此,对于我的16个输入变量中的每一个,我都希望有子批(对于类0和类1)。 我可以通过以下方式实现这一点(不确定这是否是最佳解决方案):

但现在我希望这16个图是在一个4x4的网格中。我试过:

fig, axes =plt.subplots(4, 4, figsize=(18, 10))

for col, ax in zip(df, axes.flat):
  g = sbn.FacetGrid(df, col="Y")
  g.map(sbn.countplot, col, ax=ax) 

plt.tight_layout()
plt.show()
但这是行不通的。我还尝试:

  g = sbn.FacetGrid(df, col="Y")
  for col in df:
     g.map(sbn.countplot, col)
但只绘制了最后一个col。 你能帮我吗


谢谢

每个FaceGrid都是自己的图形,您不能将图形放入其他图形中,只能依赖于。因此,理想情况下,您可以创建一个FaceGrid,也可以不依赖seaborn,而是用数据填充轴的普通matplotlib网格。检查。我如何创建一个单面网格来实现我想要的?我不知道,因为我不了解您的数据结构。我的结构是这样的:一行像这样[1,4,3,2,1],其中前四个值是输入特征,最后一个值是类索引,所以我想用这些特征预测类索引。否对于每个输入列,我想计算countplot,但关于类标签,它可以是0或1
  g = sbn.FacetGrid(df, col="Y")
  for col in df:
     g.map(sbn.countplot, col)