在熊猫图上添加y轴线

时间:2019-07-09 14:06:06

标签: python pandas plot

我将体育赛事的结果作为跑步时间。时间格式为H:M:S(00:49:51)。我已经画出了最常见的整理时间,如下所示:

df['new_time'] = pd.to_timedelta(df['time'], errors='coerce')
time_frame = str(60 * 5) + 's'
lap_time = df.groupby(pd.Grouper(key='new_time', freq=time_frame)).count()
lap_time['count'].plot()

它工作正常。enter image description here

但是我想画红线或标记,我的结果时间(01:07:45)会在哪里。另一种选择是将绘图更改为条形,只在我的时间会变成红色分组。

编辑: 这是double question。问题是,Pandas使用64位整数以纳秒分辨率表示Timedeltas,这就是为什么它没有出现的原因。

1 个答案:

答案 0 :(得分:0)

Pandas使用matplotlib,因此您可以在此处使用其功能。将以下行添加到您的代码中:

df['new_time'] = pd.to_timedelta(df['time'], errors='coerce')
time_frame = str(60 * 5) + 's'
lap_time = df.groupby(pd.Grouper(key='new_time', freq=time_frame)).count()
ax = lap_time['count'].plot()

ymin, ymax = ax.get_ylim()
date # make date be equal to whatever you are storing in your DataFrame
# If it is of type; datetime.time, then the following should work
# date = pd.to_datetime('01:07:45').time()
ax.vlines(x=date, ymin=ymin, ymax=ymax-1, color='r')