欢迎访问宙启技术站
智能推送

在Python中使用Timeline()绘制项目进度时间线

发布时间:2023-12-15 10:02:34

python中常用的绘图库有matplotlib和plotly等,这里示范使用matplotlib来绘制项目进度时间线。

要绘制项目进度时间线,可以使用matplotlib中的Timeline()函数。Timeline()函数需要传入两个参数:一个是时间线上的项目名称和持续时间,另一个是时间线上的日期范围。

下面是一个使用matplotlib的Timeline()函数绘制项目进度时间线的例子:

首先,我们需要安装matplotlib库。可以使用以下命令来安装:

pip install matplotlib

然后,我们可以按照以下步骤来绘制项目进度时间线:

import matplotlib.pyplot as plt
from matplotlib.dates import datestr2num
from matplotlib.ticker import NullFormatter
import datetime

# 定义项目名称和持续时间
events = [
    ("项目A", "2022/01/01", "2022/03/01"),
    ("项目B", "2022/02/01", "2022/04/01"),
    ("项目C", "2022/03/01", "2022/05/01")
]

# 转换日期格式
date_format = "%Y/%m/%d"
events = [(name, datestr2num(start), datestr2num(end)) for (name, start, end) in events]

# 获取日期范围
start_date = min([start for (_, start, _) in events])
end_date = max([end for (_, _, end) in events])

# 创建图表
fig, ax = plt.subplots()

# 隐藏纵坐标
nullfmt = NullFormatter()
ax.yaxis.set_major_formatter(nullfmt)

# 设置x轴为日期格式
ax.xaxis_date()

# 设置x轴范围
ax.set_xlim(start_date, end_date)

# 设置y轴范围
ax.set_ylim(0, 1)

# 绘制时间线
for i, (name, start, end) in enumerate(events):
    ax.broken_barh([(start, end-start)], (i*0.2+0.1, 0.1), facecolors='blue')

# 设置标题和标签
plt.title("项目进度时间线")
plt.xlabel("日期")
plt.ylabel("项目名称")

# 设置x轴标签格式
ax.xaxis.set_major_locator(plt.MaxNLocator(10))
ax.xaxis.set_major_formatter(plt.DateFormatter(date_format))

# 绘制图表
plt.show()

在这个例子中,我们定义了三个项目:项目A、项目B和项目C,它们的开始日期和结束日期分别是2022/01/01到2022/03/01、2022/02/01到2022/04/01和2022/03/01到2022/05/01。然后,我们使用Timeline()函数来绘制项目进度时间线。输出的图表中,横轴是日期,纵轴是项目名称,每个项目用一个矩形来表示。

这只是一个简单的示例,你可以根据自己的需求调整参数来定制绘制结果。