我需要生成甘特图的python代码,并且这个甘特图是应用于车间调度的
时间: 2024-05-23 15:12:24 浏览: 57
gantetu.zip_甘特 车间_甘特图_生产车间调度_车间调度问题
您可以使用 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)
您可以根据自己的需求修改代码中的数据和参数。
阅读全文