首页 > 解决方案 > 如何在Y轴上聚合数据并在python中绘制折线图

问题描述

我有如下数据。我想在 python 中绘制一个简单的折线图,其中 X 轴上的项目和 Y 轴上的总销售额。总销售额是项目级别的总销售额。

有人可以帮忙吗?

Item    Date    Sales
Item1   4/25/2018   55
Item2   4/25/2018   21
Item3   4/25/2018   50
Item4   4/25/2018   58
Item5   4/25/2018   81
Item6   4/25/2018   79
Item7   4/25/2018   61
Item8   4/25/2018   37
Item9   4/25/2018   51
Item10  4/25/2018   53
Item1   4/26/2018   27
Item2   4/26/2018   28
Item3   4/26/2018   26
Item4   4/26/2018   95
Item5   4/26/2018   15
Item6   4/26/2018   89
Item7   4/26/2018   42
Item8   4/26/2018   21
Item9   4/26/2018   39
Item10  4/26/2018   67
Item1   4/27/2018   14
Item2   4/27/2018   45
Item3   4/27/2018   35
Item4   4/27/2018   68
Item5   4/27/2018   76
Item6   4/27/2018   63
Item7   4/27/2018   73
Item8   4/27/2018   61
Item9   4/27/2018   59
Item10  4/27/2018   93
Item1   4/28/2018   27
Item2   4/28/2018   63
Item3   4/28/2018   55
Item4   4/28/2018   73
Item5   4/28/2018   58
Item6   4/28/2018   90
Item7   4/28/2018   67
Item8   4/28/2018   72
Item9   4/28/2018   64
Item10  4/28/2018   98

问候,菲利普

标签: pythonpython-3.xmatplotlib

解决方案


使用 pandas,这可以通过将数据加载到数据框中、执行groupby并添加每个组的销售额值来实现。最终,pandas 包装了一些可以直接从 pandas 调用的常用 matplotlib 图。

# df['Date'] = pd.to_datetime(df['Date']) # For the desired plot it is not necessary but
                                          # it is a good idea, and allow plots by date too 
df.groupby(by='Item').sum().plot.bar(y='Sales',color='g')

这会生成以下图:

在此处输入图像描述

为了根据数字从 1 到 10 对项目进行排序,可以在绘图之前使用此答案。


推荐阅读