首页 > 解决方案 > 如何在相同标签下绘制多个列条形图

问题描述

我正在绘制我的数据框,其中包含许多列,每个列都带有“TRUE”或“FALSE”标签(从 Excel 导入)。

类似的一个小例子是这样的:

df = pd.DataFrame({"a":["TRUE","FALSE","FALSE","TRUE","FALSE"],
"b":["TRUE","TRUE","FALSE","TRUE","TRUE"],
"c":["TRUE","FALSE","FALSE","FALSE","TRUE"],
"d":["FALSE","FALSE","TRUE","TRUE","FALSE"]})

我正在寻找一种方法来简明地总结 TRUE 和 FALSE 值如何在列之间分布。理想情况下,将创建如下图:

我正在寻找的示例

但我不确定如何创建它。我试过列表理解,比如尝试

sns.barplot([list(df[i].value_counts()) for i in df.columns])

但得到完全不同的东西。我什至不需要知道如何制作传奇,我只是将它包含在示例中,希望能更好地描绘我所追求的。

标签: pythonpandasnumpymatplotlibseaborn

解决方案


干得好:

df.stack().groupby(level=1).value_counts().unstack(0).plot.bar()

输出:

在此处输入图像描述


推荐阅读