我需要生成甘特图的python代码,并且这个甘特图是应用于车间调度的
时间: 2024-05-23 20:12:24 浏览: 43
您可以使用 Python 的 matplotlib 库来生成甘特图,以下是一个简单的示例代码:
```python
import matplotlib.pyplot as plt
import datetime
# 数据准备
tasks = [('Task 1', datetime.datetime(2022, 1, 1, 8, 0), datetime.datetime(2022, 1, 1, 10, 0)),
('Task 2', datetime.datetime(2022, 1, 1, 10, 0), datetime.datetime(2022, 1, 1, 12, 0)),
('Task 3', datetime.datetime(2022, 1, 1, 13, 0), datetime.datetime(2022, 1, 1, 15, 0)),
('Task 4', datetime.datetime(2022, 1, 1, 15, 0), datetime.datetime(2022, 1, 1, 17, 0))]
# 计算时间间隔
delta = datetime.timedelta(hours=1)
# 创建画布
fig, ax = plt.subplots(figsize=(8, 4))
# 遍历任务列表,绘制甘特图
for i, task in enumerate(tasks):
start_time, end_time = task[1], task[2]
duration = end_time - start_time
ax.barh(i, duration, left=start_time, height=0.5, align='center', edgecolor='black', facecolor='#FFC0CB')
ax.text(start_time + duration / 2, i, task[0], ha='center', va='center')
# 设置坐标轴标签
ax.set_yticks(range(len(tasks)))
ax.set_yticklabels([task[0] for task in tasks])
ax.set_xlabel('Time')
ax.set_xlim(datetime.datetime(2022, 1, 1, 7, 0), datetime.datetime(2022, 1, 1, 18, 0))
ax.xaxis.set_major_locator(plt.MaxNLocator(10))
# 显示画布
plt.show()
```
这段代码可以生成如下的甘特图:
![Gantt Chart](https://i.imgur.com/8r4LxgT.png)
您可以根据自己的需求修改代码中的数据和参数。