【问题标题】:Plot a time series grouped by id绘制按 id 分组的时间序列
【发布时间】:2016-11-21 15:50:45
【问题描述】:

我想绘制一个按 id 分组的时间序列。所以那个时间是我的 x 值,“值”是我的 y 值。如何绘制按“id”1 分组的 x 和 y?

id   time  value 
1    1     0.3
1    2     0.6
1    3     0.9
2    1     0.1
2    2     0.3
2    3     0.6
3    1     0.2
3    2     0.4
3    3     0.5

【问题讨论】:

    标签: python pandas matplotlib


    【解决方案1】:

    我认为您可以将pivotDataFrame.plot.bar 一起使用或仅使用DataFrame.plot

    import matplotlib.pyplot as plt
    
    df = df.pivot(index='time', columns='id', values='value')
    print (df)
    id      1    2    3
    time               
    1     0.3  0.1  0.2
    2     0.6  0.3  0.4
    3     0.9  0.6  0.5
    
    df.plot.bar()
    plt.show()
    

    df = df.pivot(index='time', columns='id', values='value')
    print (df)
    id      1    2    3
    time               
    1     0.3  0.1  0.2
    2     0.6  0.3  0.4
    3     0.9  0.6  0.5
    
    df.plot()
    plt.show()
    

    【讨论】:

    • 这更像是一个时间序列 --> df.plot(subplot=True) 可能会更好
    • @MMF - 对不起,我不明白。你能解释更多吗?
    • 然后使用 df.loc[1].plot()
    • 或者如果 1 是字符串值,则使用 df.loc['1'].plot()。
    • 对不起,我正在接电话。但是您可以在枢轴之前使用布尔索引 -df=df[df.id == '1']
    猜你喜欢
    • 2020-06-01
    • 2021-02-14
    • 1970-01-01
    • 1970-01-01
    • 2020-05-21
    • 1970-01-01
    • 2019-03-12
    • 1970-01-01
    • 2020-08-28
    相关资源
    最近更新 更多