Python Matplotlib 分割线:绘制甘特图

在数据分析和项目管理中,甘特图是一种常用的时间线图表,用于展示项目进度和时间安排。本文将介绍如何使用Python的Matplotlib库来绘制甘特图,并添加分割线以区分不同的项目阶段。

准备工作

首先,确保你已经安装了Python和Matplotlib库。如果尚未安装Matplotlib,可以通过以下命令进行安装:

pip install matplotlib
  • 1.

绘制基本的甘特图

甘特图通常由水平条形表示项目任务,每个条形的开始和结束时间对应项目的不同阶段。下面是一个简单的示例,展示如何使用Matplotlib绘制基本的甘特图:

import matplotlib.pyplot as plt
import numpy as np

# 定义任务名称和时间范围
tasks = ['任务1', '任务2', '任务3']
start_dates = ['2023-01-01', '2023-01-10', '2023-01-20']
end_dates = ['2023-01-15', '2023-02-01', '2023-02-10']

# 将日期转换为天数
days = np.arange(0, 50)
start_days = [days.index(np.datetime64(date)) for date in start_dates]
end_days = [days.index(np.datetime64(date)) for date in end_dates]

# 绘制甘特图
plt.figure(figsize=(10, 6))
for i, (start, end) in enumerate(zip(start_days, end_days)):
    plt.barh(tasks[i], end - start, left=start, color='skyblue', edgecolor='black')

plt.xlabel('时间(天)')
plt.ylabel('任务')
plt.title('项目甘特图')
plt.grid(True)
plt.show()
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.

添加分割线

为了更清晰地展示项目的不同阶段,我们可以在甘特图中添加分割线。以下是一个示例,展示如何添加分割线:

# 定义分割线的位置
milestones = [10, 20, 30]

# 在甘特图中添加分割线
for milestone in milestones:
    plt.axvline(x=milestone, color='red', linestyle='--')

plt.show()
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

使用Mermaid绘制甘特图

除了使用Matplotlib绘制甘特图,我们还可以使用Mermaid语法来绘制。以下是一个使用Mermaid语法绘制的甘特图示例:

项目甘特图 2023-01-01 2023-01-08 2023-01-15 2023-01-22 2023-01-29 2023-02-05 任务1 任务2 任务3 任务1 任务2 任务3 项目甘特图

结语

本文介绍了如何使用Python的Matplotlib库绘制甘特图,并添加分割线以区分不同的项目阶段。通过这种方式,我们可以更清晰地展示项目的进度和时间安排。同时,我们还可以使用Mermaid语法来绘制甘特图,为项目规划和分析提供更多选择。

希望本文能够帮助你更好地理解和使用甘特图。如果你有任何问题或建议,请随时与我们联系。