给我做一个甘特图

not image

甘特图是一种用于展示项目或任务的时间规划的图表,通常显示项目的开始、结束日期,以及每个阶段的持续时间。下面是一个基本的Python代码示例,使用matplotlib库来创建甘特图。 ```python import matplotlib.pyplot as plt import pandas as pd from datetime import datetime, timedelta # 定义任务和持续时间 tasks = [ ('任务1', '2022-03-01', '2022-03-07', 5), ('任务2', '2022-03-08', '2022-03-14', 3), ('任务3', '2022-03-15', '2022-03-21', 4), ] # 将任务和持续时间转换为pandas的DataFrame df = pd.DataFrame(tasks, columns=['任务', '开始日期', '结束日期', '持续时间']) # 设置开始日期和时间间隔 start = '2022-03-01' end = '2022-03-21' days_interval = (end - start).days + 1 # 计算每一天的任务数量和剩余天数 daily_df = df[['日期']].resample('D').size() daily_df['剩余天数'] = (daily_df.groupby('日期')['结束日期'] - daily_df['结束日期']).dt.days.fillna(0) # 绘制甘特图 plt.figure(figsize=(10, 6)) for i in range(len(daily_df)): if i == 0: plt.text(i, daily_df.loc[i, '结束日期'], daily_df.loc[i, '剩余天数'].values[0], ha='center', color='black') else: plt.text(i, daily_df.loc[i, '结束日期'], daily_df.loc[i, '剩余天数'].values[0], ha='right', color='black') plt.xticks(range(len(daily_df)), daily_df['日期'].astype(str), rotation=45, ha='right') plt.tight_layout() plt.show() ``` 这个代码将创建一个甘特图,展示了从2022年3月1日开始,到2022年3月21日结束的任务安排。每个任务旁边会显示其剩余天数。

评论区:

评论:

请输入内容: