如何创建包含堆叠和未堆叠信息的条形图?

时间:2021-02-03 23:39:02

标签: python pandas matplotlib plot bar-chart

我从一个包含带有时间戳、总数、用户和工作日名称的事务信息的 DataFrame 开始:

                      Total  User     Day
CompletedAt                                                
2021-01-02 10:15:07   30.00  AL  Saturday
2021-01-02 10:23:37   14.28  AL  Saturday
2021-01-02 11:12:23   16.00  AL  Saturday
2021-01-02 11:31:13   70.00  AL  Saturday
2021-01-02 11:34:20   26.25  AL  Saturday
...                     ... ...       ...
2021-01-31 19:09:23  180.00  JB    Sunday
2021-01-31 19:46:53   50.00  JB    Sunday
2021-01-31 20:49:05   97.50  JB    Sunday
2021-01-31 20:51:53  100.00  JB    Sunday
2021-01-31 20:54:29   18.75  JB    Sunday

此时,我使用框架和枢轴来获取包含每天总计的列的周期索引:

t = total_df.reset_index().pivot_table(index='CompletedAt', columns='Day', values='Total').resample('W').sum()
cats = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
t = t.reindex(columns=cats)
t.T.plot.bar(grid=True)
plt.show()
Day           Monday  Tuesday  Wednesday  Thursday   Friday  Saturday   Sunday
CompletedAt                                                                   
2021-01-03      0.00     0.00       0.00      0.00     0.00   2769.48  1253.99
2021-01-10   2035.39  1684.93    1796.32   1124.67  2349.25   2126.38   879.93
2021-01-17   1050.91  2000.61    2210.88   1268.04  1691.65    980.25   936.74
2021-01-24   2064.03  2568.10    1230.85   1970.11   898.05   1402.96   679.93
2021-01-31    798.75   998.26    1937.80   2333.44  1368.91    964.74  1066.02

最终的情节看起来像this bar plot。最终,我想做的是将条形保持在当前排列中,但每个条形都由 DataFrame 中每个用户的堆叠值组成。在这一点上,我的印象是我需要制作几个子图并将它们组合起来,但我不知道要采取的步骤。

0 个答案:

没有答案
相关问题