一个图中每一列数据框的分布概率

Ann*_*lix 4 visualization pandas seaborn

我正在通过 seaborn 库 sns.distplot() 中的 distplot 为数据框的每一列创建概率分布。对于我做的一个情节

x = df['A']
sns.distplot(x);
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用 FacetGrid & Map 以这种方式一次获得每列的所有绘图。但根本不起作用。

  g = sns.FacetGrid(df, col = 'A','B','C','D','E')
  g.map(sns.distplot())
Run Code Online (Sandbox Code Playgroud)

Sco*_*ton 7

我认为您需要使用melt将数据帧重塑为长格式,请参阅此 MVCE:

df = pd.DataFrame(np.random.random((100,5)), columns = list('ABCDE'))
dfm = df.melt(var_name='columns')
g = sns.FacetGrid(dfm, col='columns')
g = (g.map(sns.distplot, 'value'))
Run Code Online (Sandbox Code Playgroud)

输出: 在此输入图像描述


从seaborn 0.11.2开始不建议FacetGrid直接使用。相反,用于sns.displot图形级绘图。

df = pd.DataFrame(np.random.random((100,5)), columns = list('ABCDE'))
dfm = df.melt(var_name='columns')
g = sns.FacetGrid(dfm, col='columns')
g = (g.map(sns.distplot, 'value'))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述