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 轴上的值以及由不同颜色的线条/轨迹表示的组类别。
谢谢。
假设您的数据在熊猫数据框中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)