尝试绘制20+系列的堆积面积图

时间:2019-10-23 19:47:02

标签: python matplotlib plot graph visualization

我有大约1300行的数据集,用于跟踪每个用户注册月份(每月)的每月登录次数,并且我试图绘制一个堆叠的区域图,其中每个系列/跟踪为用户注册月份。

数据集如下所示:

T

问题是,当我尝试使用

------------------------------------------------------------------------------
user signup month | login month | monthly login count | cumulative login count

------------------------------------------------------------------------------
2016-01           | 2016-01     |  50                 | 50
2016-01           | 2016-02     |  25                 | 75
2016-01           | 2016-03     |  15                 | 90
...
2019-05           | 2019-05     | 1000                | 1000
2019-05           | 2019-06     | 500                 | 1500
------------------------------------------------------------------------------

它显示为一个系列,而不是期望的每个 per 个不同的用户注册月份。 enter image description here

预期结果示例: enter image description here

我用Google搜索的所有示例均手动输入系列数据,例如:

x=data['login_month']
y=data['cumulative_login_count']

plt.figure(figsize=(20,10))
plt.stackplot(x,y, labels=['user_signup_month'])
plt.legend(loc='upper left')
plt.show()

这对我来说是不切实际和不可持续的。

我还是python可视化的新手,所以我不确定哪个搜索词最有效,但是我发现“ python matlibplot多个系列跟踪stackedplot”的结果只能手动引用上述解决方案输入的序列数据

1 个答案:

答案 0 :(得分:1)

您可以并且应该一直尝试给出并举例说明您的数据。它不需要充满,但具有代表性。例如:

    signup    login  log_count
0  2016-01  2016-02         16
1  2016-01  2016-03         11
2  2016-01  2016-04         26
3  2016-01  2016-05         29
4  2016-02  2016-03         25
5  2016-02  2016-04         11
6  2016-02  2016-05         11
7  2016-03  2016-04         28
8  2016-03  2016-05         23
9  2016-04  2016-05         12

现在,有了这个玩具数据,我们可以通过以下方式生成面积/堆栈图:

(df.pivot(index='login', 
          columns='signup', 
          values='log_count')
   .plot.area(figsize=(10,6))
)

输出:

enter image description here