如何在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
我想在x轴上显示日期,在y轴上显示值,以及由不同颜色的线条/迹线表示的组类别。
感谢。
答案 0 :(得分:2)
假设您的数据位于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()