我有一个dataframe如下
category val1 val2 val3
A 2 3 2
A 3 4 1
B 4 5 2
C 3 3 2
B 4 5 2
C 3 3 2
我试图创建一个分组的酒吧视觉,有类别的x轴,和val1,val2,val3作为y轴。
我的代码类似于这样:
plt.bar(df['category'], df['var1'])
plt.bar(df['category'], df['var2'])
plt.bar(df['category'], df['var3'])
但是,我没有得到一个分组条形图。它是这样的。有什么办法来解决这个问题吗?
2条答案
按热度按时间ctrmrzij1#
我不确定这是你想要的,但你可以尝试以下两种选择:
或
这些方法的关键是使用
melt
来取消数据透视。还要注意的是,上面并没有处理重复的类别。如果你想让你的值是唯一的,你可以在绘图之前将
df
按category
分组并聚合值。wwodge7n2#
您的类别不是唯一的。您希望在x轴上看到什么?
假设它们是唯一的,那么你可以简单地做:
编辑:
seaborn
本身并不支持堆叠条形图,但如果你需要(或者其他人正在寻找标题中的实际内容),这里有一个黑客方法。