通过在各组之间划分来对熊猫进行分组分组可视化

时间:2018-11-14 20:11:55

标签: python pandas matplotlib group-by visualization

我正面临一个非常烦人的问题。我有一个数据集,其中有不同地区和年份的销售额。

我想将不同地区的年度总销售额可视化。

以下是我的分组依据代码:

groups = df.groupby(["Region", "Year"])["Sales"].sum()
groups.plot.bar(color="blue")
plt.show()

我得到的输出看起来像这样: enter image description here

我有两个问题: 1.如何以某种方式将区域和年柱彼此分开,这样我的图表看起来确实令人困惑?分隔线或实际上是荧光笔也可以,或者更大的间隙对我来说是一个很好的解决方案。 (请看下面,我的意思是:) enter image description here 要么 enter image description here

我根本不知道如何解决这个问题。

问题2。如何按销售额最高的地区,每年销售额第二高的地区排序此图像,依此类推?一种基于区域的降序排序。

我尝试了以下代码:

groups = df.groupby(["Region", "Year"])["Sales"].sum()
groups2=groups.sort_values(axis=[0][1],ascending=False)
groups.plot.bar(color="blue")
plt.show()

但是我得到列表索引超出范围错误。使用axis = [0]不能解决问题。

非常感谢您的提前帮助!

1 个答案:

答案 0 :(得分:2)

根据ChrisD的建议,您可以使用seaborn's catplot获得工作结果,以按区域将条形图显示在不同的方面。

sns.catplot(x='Year', y='Sales', col='Region', data=groups, kind='bar')

出于显示目的,您可能必须设置纵横比的格式。