问题描述
让我们先说这是我的第一篇文章,所以如果有什么不寻常的地方 - 我很抱歉。
我试图寻找解决方案来解决我的问题,但不幸的是无济于事。我正在尝试根据我的数据帧('df_phase')创建一个时间线,它具有以下标题:
姓名 | time_entries.days | time_entries.end_time | time_entries.hours | time_entries.minutes | time_entries.seconds | time_entries.start_time
理论上,唯一重要的列是名称列、结束时间列和开始时间列。
现在我已经制作了一个可以正确绘制时间线的脚本 - 但是,它在新的 y 轴行上显示每个活动(列“名称”)。理想情况下,我希望使用断开的 barh 在同一 y 轴上具有相同活动名称的行项目,以及在新 y 轴行上具有新活动名称的每个新行项目。
我目前的脚本如下:
df_phase['Start_Time'] = pd.to_datetime(df_phase['time_entries.start_time'],format='%Y-%m-%d %H:%M:%s')
df_phase['End_Time'] = pd.to_datetime(df_phase['time_entries.end_time'],format='%Y-%m-%d %H:%M:%s')
#Convert DF columns into lists
sdate = df_phase['Start_Time'].tolist()
edate = df_phase['End_Time'].tolist()
tasks = df_phase['name'].tolist()
#Convert time to Matplotlib number format
edate,sdate = [dates.date2num(item) for item in (edate,sdate)]
time_diff = edate - sdate
ypos = range(len(tasks))
fig,ax = plt.subplots()
ax.barh(ypos,time_diff,left=sdate,height=0.8,align='center',color='blue',edgecolor='black')
plt.yticks(ypos,tasks)
ax.axis('tight')
#We need to tell matplotlib that these are dates...
ax.xaxis_date()
ax.set_xlabel('Time line')
plt.xlim(df_phase['Start_Time'].min(),df_phase['End_Time'].max())
ax.xaxis.set_major_formatter(dates.DateFormatter('%H:%M:%s'))
plt.show()
是否有可能为每个具有多个时间条目的活动创建这样的断断续续的 barh?如果可能,为每个 y 轴 barh 使用新颜色。
非常感谢您的帮助 - 谢谢:)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)