Matplotlib:所有组的堆积面积图

Matplotlib: Stacked area chart for all the groups

我正在尝试在类似的时间轴 x 轴上为我的数据中的所有组创建堆积面积图。我的数据如下所示

dataDate  name prediction       
2018-09-30  A   2.309968
2018-10-01  A   1.516652
2018-10-02  A   2.086062
2018-10-03  A   1.827490
2018-09-30  B   0.965861
2018-10-01  B   6.521989
2018-10-02  B   9.219777
2018-10-03  B   17.434451
2018-09-30  C   6.890485
2018-10-01  C   6.106187
2018-10-02  C   5.535563
2018-10-03  C   1.913100

我正在尝试创建如下内容

x 轴将是时间序列。请帮助我重新创建相同的内容。谢谢

您可以将您的数据复制到剪贴板并尝试这样的操作

import matplotlib.pyplot as plt
import pandas as pd

df = pd.read_clipboard()
fig, ax = plt.subplots()
for label, sub_df in df.set_index('dataDate').groupby('name'):
    sub_df.plot.area(ax=ax, label=label)
plt.legend()

假设您的数据存储在名为 df 的数据框中。然后你可以旋转数据框并直接绘制它。请确保您的日期是实际日期,而不是字符串。

df["dataDate"] = pd.to_datetime(df["dataDate"])
df.pivot("dataDate", "name", "prediction").plot.area();