我有20列,在两列上使用了groupby,然后得到了。
data.groupby(['id','date']).count()['dx'].iplot()
id date
K01 2019-04-04 12:47:31.610 1
2019-04-05 13:52:50.923 1
2019-04-06 11:29:55.357 1
2019-04-07 19:08:17.370 1
2019-04-08 10:58:02.710 1
2019-04-08 12:07:15.477 1
2019-04-08 15:23:48.850 1
..
K5 2019-06-24 21:06:50.563 1
2019-06-25 17:07:49.880 1
2019-06-25 19:44:18.720 1
2019-06-26 05:46:45.343 1
Name: id, Length: 99466, dtype: int64
我有多个ID,如您所见,长度太大。 如何为每个ID绘制图形? 以日期为x轴,以计数为y轴,以id为标题?
我尝试使用iplot-密谋,结果是一个错误。
我可以用什么其他类型的图来描绘所有id?
答案 0 :(得分:0)
您只需要创建一个数据框,其中每一列都是要绘制的序列。
plt.tight_layout()
data.groupby(['id','date']).count()['dx'].unstack('id', fill_value=0).plot()
在这种情况下,每个序列都由ID(例如“ K01”,“ K5”)索引,因此您只需要拆开数据框并进行绘制即可。
但是,如果id的数量太大,则该图可能很难阅读。使用绘图选项subplots=True
可能会有所帮助;否则,我会考虑另一种图形。