matplotlib 如何在多个级别绘制DataFrame中的数据

gajydyqb  于 2023-03-03  发布在  其他
关注(0)|答案(1)|浏览(158)

我有以下一组数据:

period_date_str NAME    AMOUNT1     
2022-09-30      A       10          
2022-09-30      B       15          
2022-09-30      C       20          
2022-10-30      A       9           
2022-10-30      B       12          
2022-10-30      C       14          
2022-11-30      A       8           
2022-11-30      B       9           
2022-11-30      C       4

我试图在同一个图表中用不同的线为每个名称绘制AMOUNT1,这样每个名称最终都会成为不同的“图例名称”。
非常感谢你,因为这是我在StackOverflow的第一个问题。我真的很感谢你的帮助。
我知道我可以按日期对DataFrame进行分组,然后按每个名称一对一地进行分组。但是我正在寻找一种方法来自动执行此任务,以便将来如果我得到一个新名称,我不需要修改代码。

t8e9dugd

t8e9dugd1#

您可以在转换日期to_datetime后使用seaborn.lineplot

import seaborn as sns

sns.lineplot(data=df.assign(date=pd.to_datetime(df['period_date_str'])),
             x='date', y='AMOUNT1', hue='NAME')

输出:

或者使用pivot

(df.assign(date=pd.to_datetime(df['period_date_str']))
   .pivot(index='date', columns='NAME', values='AMOUNT1')
   .plot()
 )

输出:

相关问题