Python 中自动生成甘特图

本文介绍了在 Python 中使用 Plotly 库生成甘特图的方法。通过创建任务列表,结合 Plotly 的 ff.create_gantt() 函数,可以实现自定义的甘特图。Plotly 提供了丰富的定制选项和交互式特性,适用于多种图表类型,同时支持 Jupyter Notebook 集成。文章还提及了其他 Python 图形库的安装和使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

要在 Python 中自动生成甘特图,你可以使用一些流行的数据可视化库来实现,例如 Matplotlib、Plotly 或 GanttChartLab。

以下是使用 Plotly 库生成甘特图的示例代码:

import plotly.figure_factory as ff

# 创建任务列表
tasks = [
    dict(Task="任务1", Start='2023-09-01'
### 使用Python绘制时间甘特图 #### 推荐使用的库 为了在 Python自动生成甘特图,可以选择一些流行的数据可视化库来实现,例如 Matplotlib、Plotly 或 GanttChartLab[^1]。 #### 示例代码:基于Matplotlib的简单甘特图 下面是一个简单的例子,展示了如何利用 `matplotlib` 绘制基本的时间甘特图: ```python import matplotlib.pyplot as plt import datetime from matplotlib.dates import date2num def create_gantt_chart(tasks, start_dates, end_dates): fig, ax = plt.subplots() # Convert dates to the correct format for plotting. start_date_nums = [date2num(datetime.datetime.strptime(d, "%Y-%m-%d")) for d in start_dates] end_date_nums = [date2num(datetime.datetime.strptime(d, "%Y-%m-%d")) for d in end_dates] colors=['blue', 'red', 'green'] for i, task in enumerate(tasks): ax.barh(i, left=start_date_nums[i], width=end_date_nums[i]-start_date_nums[i], height=0.3, color=colors[i % len(colors)], edgecolor='black') ax.set_yticks(range(len(tasks))) ax.set_yticklabels(tasks) ax.xaxis_date() # Ensure that the x-axis is treated as a date axis. plt.title('Simple Time-based Gantt Chart with Matplotlib') plt.xlabel('Dates') plt.ylabel('Tasks') plt.grid(True) plt.show() tasks = ["Task A", "Task B", "Task C"] start_dates = ['2023-09-01','2023-09-05','2023-09-10'] end_dates = ['2023-09-07','2023-09-12','2023-09-15'] create_gantt_chart(tasks, start_dates, end_dates) ``` 这段代码定义了一个函数 `create_gantt_chart()` 来接收任务列表及其对应的开始日期和结束日期,并使用这些参数生成一个水平条形图形式的甘特图。每个任务被表示成一条横跨其持续期间的线段[^4]。 对于更复杂的需求,比如创建多层级甘特图,则可能需要用到像 ChartDirector 这样的高级绘图工具,在此类场景下可以通过调用特定的方法如 `XYChart.addBoxWhiskerLayer` 和调整属性如 `BaseBoxLayer.setDataWidth` 来定制图表样式[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

openwin_top

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值