使用pandas和matplotlib绘制宽数据

时间:2017-05-02 14:45:50

标签: python matplotlib dataframe visualization

我有以下pandas数据帧:

         var    sales
month       
2017-01-01  1   356558.02
2017-01-01  2   295062.54
2017-01-01  3   236702.53
2017-02-01  1   305813.24
2017-02-01  2   348966.32
2017-02-01  3   364121.50
2017-03-01  1   292793.76
2017-03-01  2   345290.65
2017-03-01  3   361361.49
2017-04-01  1   265695.47
2017-04-01  2   351965.57
2017-04-01  3   520796.56

如何在x轴上绘制month,在y轴上绘制sales和三个不同的行:每一行都对应var列中的值?我需要表示每个sales var随时间变化的方式。

1 个答案:

答案 0 :(得分:2)

首先将您的数据旋转,使其成为您想要的形式。然后绘制。

df = df.pivot(index='month', columns='var', values='sales')
df.plot()

枢轴可以解决这个问题:

month        1           2           3
2017-01-01   356558.02   295062.54   236702.53
2017-02-01   305813.24   348966.32   364121.50
2017-03-01   292793.76   345290.65   123456.78

从那里,意图应该更加清晰。