我正面临一个非常烦人的问题。我有一个数据集,其中有不同地区和年份的销售额。
我想将不同地区的年度总销售额可视化。
以下是我的分组依据代码:
groups = df.groupby(["Region", "Year"])["Sales"].sum()
groups.plot.bar(color="blue")
plt.show()
我有两个问题: 1.如何以某种方式将区域和年柱彼此分开,这样我的图表看起来确实令人困惑?分隔线或实际上是荧光笔也可以,或者更大的间隙对我来说是一个很好的解决方案。 (请看下面,我的意思是:) 要么
我根本不知道如何解决这个问题。
问题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]不能解决问题。
非常感谢您的提前帮助!
答案 0 :(得分:2)
根据ChrisD的建议,您可以使用seaborn's catplot
获得工作结果,以按区域将条形图显示在不同的方面。
sns.catplot(x='Year', y='Sales', col='Region', data=groups, kind='bar')
出于显示目的,您可能必须设置纵横比的格式。