使用 matplotlib 在线图/时间序列上的多条线

use*_*322 4 python linechart time-series matplotlib

如何在 python 上的 matplotlib 或 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
Run Code Online (Sandbox Code Playgroud)

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

谢谢。

Imp*_*est 8

假设您的数据在熊猫数据框中df,如果组不在单独的列中,就很难绘制它,但这实际上是很容易在一行中完成的一个步骤,

df.pivot(index="Date", columns="Group", values="Value").plot()
Run Code Online (Sandbox Code Playgroud)

完整示例:

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()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明