我有大约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 个不同的用户注册月份。
我用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”的结果只能手动引用上述解决方案输入的序列数据
答案 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))
)
输出: