我正在尝试创建一个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的图。
答案 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')