【问题标题】:Multiple lines on line plot/time series with matplotlib使用 matplotlib 的线图/时间序列上的多条线
【发布时间】:2018-04-02 21:33:55
【问题描述】:

如何在 matplotlib 或 Python 上的 plot.ly 上绘制由分类变量表示的多条轨迹?我正在尝试从 R 复制 geom_line(aes(x=Date,y=Value,color=Group) 函数。

有没有办法在 Python 上实现这一点而无需将组放在单独的列中?我是否必须不可避免地重组数据?

假设我有以下数据:

Date    Group   Value
1/01/2015   A   50
2/01/2015   A   60
1/01/2015   B   100
2/01/2015   B   120
1/01/2015   C   40
2/01/2015   C   55
1/01/2015   D   36
2/01/2015   D   20

我想要 x 轴上的日期,y 轴上的值,以及由不同颜色的线条/轨迹表示的组类别。

谢谢。

【问题讨论】:

    标签: python matplotlib time-series linechart


    【解决方案1】:

    假设您的数据在 pandas 数据框 df 中,如果没有将组放在单独的列中,将很难绘制它,但这实际上是一个非常容易在一行中完成的步骤,

    df.pivot(index="Date", columns="Group", values="Value").plot()
    

    完整示例:

    u = u"""Date    Group   Value
    1/01/2015   A   50
    2/01/2015   A   60
    1/01/2015   B   100
    2/01/2015   B   120
    1/01/2015   C   40
    2/01/2015   C   55
    1/01/2015   D   36
    2/01/2015   D   20"""
    
    import io
    import pandas as pd
    import matplotlib.pyplot as plt
    
    df = pd.read_csv(io.StringIO(u), delim_whitespace=True)
    df["Date"] = pd.to_datetime(df["Date"])
    
    df.pivot(index="Date", columns="Group", values="Value").plot()
    
    plt.show()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-09
      • 2015-05-28
      • 1970-01-01
      • 2021-08-24
      • 2019-01-01
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      相关资源
      最近更新 更多