You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Plotly绘制单条无堆叠的时间线甘特图

要实现所有任务在同一横向条展示,只需在pex.timeline调用时增加固定的y参数,让所有任务绑定到同一个y轴刻度即可,修改后代码如下:

import pandas as pd
import plotly.express as pex

d1 = dict(Start= '2021-10-10 02:00:00', Finish = '2021-10-10 09:00:00', Task = 'Sleep')
d2 = dict(Start= '2021-10-10 09:00:00', Finish = '2021-10-10 09:30:00', Task = 'EAT')
d3 = dict(Start= '2021-10-10 09:30:00', Finish = '2021-10-10 12:00:00', Task = 'Study')
d4 = dict(Start= '2021-10-10 12:00:00', Finish = '2021-10-10 16:00:00', Task = 'Work')
d5 = dict(Start= '2021-10-10 16:00:00', Finish = '2021-10-10 16:50:00', Task = 'EAT')
d6 = dict(Start= '2021-10-10 17:00:00', Finish = '2021-10-10 20:00:00', Task = 'Study')
d8 = dict(Start= '2021-10-10 20:00:00', Finish = '2021-10-10 20:40:00', Task = 'EAT')
d7 = dict(Start= '2021-10-10 21:00:00', Finish = '2021-10-11 05:00:00', Task = 'Sleep')

df = pd.DataFrame([d1,d2,d3,d4,d5,d6,d7,d8])

gantt = pex.timeline(df, 
                     x_start='Start', 
                     x_end = 'Finish', 
                     color = 'Task', 
                     y = '日程', # 固定y值,所有任务将展示在同一行
                     height=300)
# 可选配置:隐藏y轴标题,优化显示效果
gantt.update_layout(yaxis_title=None)
gantt.show()

原理解释:plotly express的timeline默认会将y参数的不同取值拆分到不同的横向行展示,当所有任务绑定同一个y值时,就会自动排列在同一行中。你可以根据需要调整y的取值文字,也可以通过update_layout隐藏y轴的显示元素让图表更简洁。

内容的提问来源于stack exchange,提问作者Gaurav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 07:45:00