Pandas 如何绘制每行具有不同变量的Seaborn FaceGrid?

Pandas 如何绘制每行具有不同变量的Seaborn FaceGrid?,pandas,plot,statistics,seaborn,Pandas,Plot,Statistics,Seaborn,我有一个熊猫数据框,其中有一列分类变量C={a,B,C,…},还有一些数字列var1,var2,…,var\u n。我想绘制一个网格,其中每行包含一个数字列的柱状图,这些数字列的条件是所有不同的分类变量(每列一个)。这对于一个数值变量来说是非常简单的,但是,我很难将它扩展到多个变量。我可能可以通过子地块来实现这一点,但我想知道它是否直接存在于Seaborn中 这就是我想要的 A-list(var1) | B-hist(var1) | C-hist(var1)... A-hist(var2) |

我有一个熊猫数据框,其中有一列分类变量
C={a,B,C,…}
,还有一些数字列
var1
var2
,…,
var\u n
。我想绘制一个网格,其中每行包含一个数字列的柱状图,这些数字列的条件是所有不同的分类变量(每列一个)。这对于一个数值变量来说是非常简单的,但是,我很难将它扩展到多个变量。我可能可以通过子地块来实现这一点,但我想知道它是否直接存在于Seaborn中

这就是我想要的

A-list(var1) | B-hist(var1) | C-hist(var1)...
A-hist(var2) | B-hist(var2) | C-hist(var2)...
A-hist(var3) | B-hist(var3) | C-hist(var3)...
....

因此,正如@ImportanceOfBeingErnest在一篇评论中指出的那样,如果您以整洁的方式正确设置熊猫数据帧,那么就不需要使用奇特的绘图向导。也就是说,作为带有
(类别、变量、数据)
的行,其中变量现在是一列标签,指示数据所属的先前列名。通常,当给定变量的数据长度不同时,这种结构会自动发生

将数据框置于此格式后,
(类别、变量、数据)
,您可以像往常一样使用matplotblib和seaborn打印它们

g = sns.FacetGrid(data=df, col='Categories', row='Variables')
g = g.map(plt.hist, "Data")
plt.subplots_adjust(top=0.9)
g.fig.suptitle('Histogram of variables conditioned on categories')
plt.show()

一旦您的数据框架以3列(类别、变量、数据)的堆叠方式存在,这应该是直截了当的。然后您可以调用FaceGrid(df,col=“categories”,row=“variables”)。