python情节多线时间系列

时间:2016-05-17 10:36:53

标签: python matplotlib plot

我正在尝试创建一个matplotlib图,其中X轴上的时间戳和abscisse Y上的得分,表示当时id的得分演变。

id  timestamp   score
1   1           100
1   2           115
1   3           120
2   2           12
2   2           20
2   3           15
2   4           30
3   1           14
3   2           100
5   2          20
6   3          20
7   4         100

例如id = 1,应该用图中的一条线表示,并表示其得分在时间上的演变,

其他身份的情况相同。 (id的数量未知,我从大型csv文件中获取它们。)

我尝试了几个情节但没有解决方案。

如何创建包含多个Id的图。

1 个答案:

答案 0 :(得分:0)

你可以这样做:

import numpy as np
import matplotlib.pylab as pl

id        = np.array([1,1,1,2,2,2,2,3,3,5,6,7])
timestamp = np.array([1,2,3,1,2,3,4,1,2,2,3,4])
score     = np.array([100,115,120,12,20,15,30,14,100,20,20,100]) 

pl.figure()
for i in np.unique(id):     # Loop over all the unique id's
    pw = np.where(id == i)  # which elements belong to this id
    pl.plot(timestamp[pw], score[pw], '-x', label=str(i))
pl.legend(frameon=False, loc='best')

enter image description here