使用Python繪制甘特圖
- 甘特圖
- 效果
- 代碼
甘特圖
甘特圖是一種項目管理工具,用于展示項目進度和任務安排。它通過條狀圖形表示各任務的起止時間,便于直觀地查看項目的各個任務的進度和相互關系。
效果
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-dAs7ifp4-1720143854496)(https://i-blog.csdnimg.cn/direct/b98e07ed3f0b49c998dfd1f86a2ab130.png)]
代碼
import matplotlib.pyplot as plt
import pandas as pd
import matplotlib.dates as mdates# 創建示例任務數據
data = {'Task': ['Task 1', 'Task 2', 'Task 3', 'Task 4'],'Start': ['2023-07-01', '2023-07-05', '2023-07-10', '2023-07-15'],'End': ['2023-07-10', '2023-07-15', '2023-07-20', '2023-07-25']
}# 轉換為DataFrame
df = pd.DataFrame(data)
df['Start'] = pd.to_datetime(df['Start'])
df['End'] = pd.to_datetime(df['End'])# 繪制甘特圖
fig, ax = plt.subplots(figsize=(10, 5))# 將任務按結束時間排序,確保繪圖時任務從上到下排列
df = df.sort_values(by='End')# 繪制每個任務的條形
for i, task in enumerate(df.itertuples()):ax.barh(task.Task, (task.End - task.Start).days, left=task.Start)# 設置x軸的日期格式
ax.xaxis.set_major_locator(mdates.DayLocator(interval=2))
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d'))# 設置圖表標題和標簽
plt.title('Gantt Chart')
plt.xlabel('Date')
plt.ylabel('Task')# 自動旋轉日期標簽
plt.xticks(rotation=45)plt.tight_layout()
plt.show()