📅  最后修改于: 2023-12-03 15:33:43.054000             🧑  作者: Mango
甘特图是一种项目管理工具,用于视觉化项目中的任务和时间安排。在 plotly 中,我们可以利用其甘特图库轻松地创建和自定义甘特图。
安装 plotly 库:
!pip install plotly
首先,我们需要导入相应的库:
import plotly.express as px
创建一个 DataFrame:
import pandas as pd
df = pd.DataFrame([
dict(Task="任务1", Start='2021-09-01', Finish='2021-09-05'),
dict(Task="任务2", Start='2021-09-03', Finish='2021-09-08'),
dict(Task="任务3", Start='2021-09-05', Finish='2021-09-10'),
dict(Task="任务4", Start='2021-09-09', Finish='2021-09-14')
])
然后,我们可以使用 fig = px.timeline()
函数创建一个甘特图,然后将 DataFrame 中的任务名称和开始时间、结束时间以及颜色字段传递给函数。
fig = px.timeline(df, x_start="Start", x_end="Finish", y="Task")
fig.show()
甘特图将被绘制出来,以清晰地显示每个任务的时间长度和排列。
我们可以使用多种属性进一步自定义甘特图。例如,我们可以自定义时间轴的名称和格式:
fig.update_xaxes(title_text='时间', dtick="D")
我们还可以更改甘特图的大小、位置和背景颜色:
fig.update_layout(
title_text='任务时间安排',
title_font_size=24,
title_font_family="Arial",
height=400,
margin=dict(l=20, r=20, t=60, b=10),
plot_bgcolor='rgb(240,240,240)'
)
此外,我们还可以更改任务的颜色和标签,以便更好地区分它们:
colors = [
"rgb(200, 20, 20)", "rgb(120, 200, 20)",
"rgb(20, 120, 200)", "rgb(200, 120, 20)"
]
labels = ["紧急任务", "高优先级任务", "中优先级任务", "低优先级任务"]
fig.update_traces(
hovertemplate="<b>%{y}</b><br>开始时间: %{x}<br>结束时间: %{x2}",
marker=dict(color=colors),
)
fig.update_yaxes(categoryorder='array', categoryarray=labels)
这些自定义将使我们的甘特图更具可读性和易用性。
使用 plotly 中的甘特图库,我们可以轻松地创建和自定义项目管理工具,以视觉化项目中的任务和时间安排。为了更好地满足我们的需求,我们可以使用许多属性来自定义甘特图的外观和功能。