给一段python代码实现甘特图绘制
时间: 2023-07-25 13:08:41 浏览: 99
甘特图的源代码
3星 · 编辑精心推荐
以下是一个使用Matplotlib库绘制甘特图的Python代码示例:
```python
import matplotlib.pyplot as plt
import datetime
# 定义任务名称、开始时间、结束时间和持续时间
tasks = {
'Task 1': [datetime.datetime(2021, 1, 1, 8, 0), datetime.datetime(2021, 1, 1, 11, 0)],
'Task 2': [datetime.datetime(2021, 1, 1, 10, 0), datetime.datetime(2021, 1, 1, 14, 0)],
'Task 3': [datetime.datetime(2021, 1, 1, 12, 0), datetime.datetime(2021, 1, 1, 16, 0)],
'Task 4': [datetime.datetime(2021, 1, 1, 15, 0), datetime.datetime(2021, 1, 1, 18, 0)],
'Task 5': [datetime.datetime(2021, 1, 1, 17, 0), datetime.datetime(2021, 1, 1, 20, 0)]
}
# 计算时间范围
start_time = min([tasks[t][0] for t in tasks])
end_time = max([tasks[t][1] for t in tasks])
# 创建图像
fig, ax = plt.subplots(figsize=(10, 5))
# 设置坐标轴范围
ax.set_xlim(start_time, end_time)
ax.set_ylim(0, len(tasks)*10)
# 隐藏坐标轴
ax.get_yaxis().set_visible(False)
# 绘制任务条
for i, t in enumerate(tasks):
start = tasks[t][0]
duration = tasks[t][1] - start
ax.barh(i*10+5, duration, height=5, left=start)
# 添加任务名称
ax.text(start, i*10+5, t, ha='right', va='center')
# 添加图例
ax.legend()
# 显示图像
plt.show()
```
这段代码会生成一个甘特图,其中每个任务都用一条水平条表示,条的长度表示任务持续时间,条的位置表示任务开始时间。每个任务的名称被放置在相应的条上方。
阅读全文