甘特图加文字python
时间: 2024-12-29 14:23:24 浏览: 7
### 使用Matplotlib绘制带文字说明的甘特图
为了在Python中创建带有文字标注的甘特图,可以利用`matplotlib`库中的`barh`函数来绘制水平条形图,并使用`text`方法添加文字标签。以下是具体实现方式:
#### 绘制甘特图并添加文字说明
```python
import matplotlib.pyplot as plt
import datetime
# 定义任务数据
tasks = [
{"name": "Task A", "start": datetime.datetime(2023, 1, 1), "end": datetime.datetime(2023, 1, 7)},
{"name": "Task B", "start": datetime.datetime(2023, 1, 8), "end": datetime.datetime(2023, 1, 14)},
{"name": "Task C", "start": datetime.datetime(2023, 1, 15), "end": datetime.datetime(2023, 1, 21)}
]
fig, ax = plt.subplots()
for i, task in enumerate(tasks):
start_date = (task["start"] - tasks[0]["start"]).days
duration = (task["end"] - task["start"]).days + 1
# 绘制横条
ax.barh(i, duration, left=start_date, height=0.5, align='center', color="green")
# 添加任务名称作为文字标注
ax.text(start_date, i, f'{task["name"]} ({duration} days)', va='center', ha='left')
ax.set_yticks(range(len(tasks)))
ax.set_yticklabels([t["name"] for t in tasks])
ax.set_xlabel('Days since project start')
plt.title('Gantt Chart with Text Annotations')
plt.grid(True)
plt.show()
```
这段代码定义了一系列的任务及其开始时间和结束时间,然后通过循环遍历这些任务,在图表上画出相应的横条代表每项任务的时间跨度,并在同一位置旁边加上描述性的文本标记[^1]。
阅读全文