按id分组绘制时间序列

3

我想绘制按id分组的时间序列图。因此,时间是我的x值,“value”是我的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
1个回答

8
我认为你可以使用pivot来结合DataFrame.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()

graph

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()

graph


@MMF - 抱歉,我不理解。你能再解释一下吗? - jezrael
我想绘制按id分组的时间序列。我认为使用子图来绘制每个组的图形比绘制条形图来表示时间序列更好。这取决于你要绘制什么。 - MMF
1
然后使用 df.loc[1].plot()。 - jezrael
1
或者,如果1是字符串值,则使用df.loc ['1'] .plot()函数。 - jezrael
1
抱歉,我正在使用手机。但在进行数据透视表之前,您可以使用布尔索引 - df = df[df.id == '1'] - jezrael
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接