Python 使用dataframe的groupby函数快速绘制多列直方图

Python 使用dataframe的groupby函数快速绘制多列直方图,python,pandas,matplotlib,pandas-groupby,Python,Pandas,Matplotlib,Pandas Groupby,我有一个熊猫数据框,看起来像 其中一列名为label,只能取两个可能的值0或1 我想分别为标签1和标签0制作柱状图,如 我可以为其中一个专栏(名为“MA_CL05”)制作以下内容: 我可以复制并通过20列的补丁,一切都会好的。但是,有什么简单的方法可以一次性绘制()类型的直方图吗?您可以添加另一个循环,围绕数据帧的列循环并指定要绘制的轴 fig, axes = plt.subplots(4,5) for col,ax in zip(infile.columns[2:],axes.flatte

我有一个熊猫数据框,看起来像 其中一列名为label,只能取两个可能的值0或1

我想分别为标签1和标签0制作柱状图,如

我可以为其中一个专栏(名为“MA_CL05”)制作以下内容:


我可以复制并通过20列的补丁,一切都会好的。但是,有什么简单的方法可以一次性绘制()类型的直方图吗?

您可以添加另一个循环,围绕数据帧的列循环并指定要绘制的轴

fig, axes = plt.subplots(4,5)

for col,ax in zip(infile.columns[2:],axes.flatten()):
    temp = infile.groupby('label')
    for k, v in temp:
        v[col].hist(label=str(k),bins=25,alpha=1.0,histtype = 'step',lw=4, ax=ax)

plt.legend(loc=1, prop={'size': 51})
plt.show()

你想把所有的直方图都画在一个图上吗?不。。。。我希望每个属性都有单独的直方图。但是,在dataframe中有两个标签0和1。因此,对于每个属性,我们有两个直方图,一个为0,另一个为1。我想把这两个直方图放在一个图中。那么你想要20个不同的图吗?是的。。。20个不同的图。请检查我的答案。我想是完全一样的。
fig, axes = plt.subplots(4,5)

for col,ax in zip(infile.columns[2:],axes.flatten()):
    temp = infile.groupby('label')
    for k, v in temp:
        v[col].hist(label=str(k),bins=25,alpha=1.0,histtype = 'step',lw=4, ax=ax)

plt.legend(loc=1, prop={'size': 51})
plt.show()