【问题标题】:Plot wide data using pandas and matplotlib使用 pandas 和 matplotlib 绘制宽数据
【发布时间】:2017-05-03 00:40:31
【问题描述】:

我有以下熊猫数据框:

         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 列中的一个值?我需要表示每个varsales 如何随时间变化。

【问题讨论】:

    标签: python matplotlib dataframe visualization


    【解决方案1】:

    首先转换您的数据,使其采用您想要的形式。然后绘制。

    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
    

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

    【讨论】:

    • 是的,谢谢它的工作,只是一个额外的问题,我如何在特定日期添加一条垂直线,例如 = '2017-03-23' 到这个图表?
    • 关于使用命令axvline 绘制垂直线的问题,我将遵从this question
    猜你喜欢
    • 2015-09-10
    • 2016-06-04
    • 2017-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-05
    • 2017-12-12
    相关资源
    最近更新 更多