Python 如何使用matplotlib绘制这样的图形

Python 如何使用matplotlib绘制这样的图形,python,pandas,matplotlib,Python,Pandas,Matplotlib,我有一个数据帧: date date2 col1 col2 2011-05-01 2011-05-01 3 25 2011-05-02 1 17 2011-05-03 2 12 2012-05-01 2012-05-01 5 45 2012-05-02 5 73 如何按级别0(日期)绘制分组数据帧的每列(col1和

我有一个数据帧:

  date       date2      col1   col2
 
2011-05-01  2011-05-01    3     25
            2011-05-02    1     17
            2011-05-03    2     12

2012-05-01  2012-05-01    5     45
            2012-05-02    5     73
如何按级别0(日期)绘制分组数据帧的每列(col1和col2)

我想在图中画一张这样的图。 所以日期是由颜色决定的,日期2在x轴上,col1或col2是要单独绘制的col

我尝试了stackplot,但没有成功,因为我无法设置x长度:

plt.stackplot(df.date2,df.groupby(level=0)['col1'].sum())
我想收到的照片:


谢谢您

尝试使用数据帧重塑:

df.unstack('date2')['col1'].plot.area()
正如@QuangHoang所说,这成本更低,操作的列更少,这更好:

df['col1'].unstack('date2').plot.area()

尝试以下操作:
df.unstack('date2')['col1'].plot.area()
。。没有足够的数据复制您的绘图。谢谢。它工作。@ USE12128569请考虑接受和投票的答案,如果为你工作。code>df['col1'].unstack('date2').plot.area()稍微便宜一点。谢谢,@QuangHoang。保持安全和健康。