# 绘制甘特图
# 甘特图亦称为横道图、条状图,它通过活动列表和时间刻度表示特定项目的顺序与持续时间。甘特图一般以时间为横轴、项目为纵轴,可以直观地展示每个项目的进展情况,以便于管理者了解项目的剩余任务及评估工作进度。例如,某公司于 12 月份跟踪了某项目进度,如图 8-10 所示。
# 观察图 8-10 可知,甘特图类似于条形图,它们的图形都是横向的矩形条,但甘特图中每个矩形条的起始位置是不同的。使用 pyplot 模块的 barh() 函数可以绘制一个甘特图,只需要给 left 参数传入值,指定每个矩形条 x 坐标值即可。
已知某公司准备开辟一个新项目,为确保项目的可行性,将该项目划分为 “项目确定” “问卷设计” “试访” “问卷确定” “实地执行” “数据录入” “数据分析” “报告提交” 共 8 个任务,并指定了各任务的周期。下面使用 barh() 绘制一个甘特图,示例代码如下。
In [5]:
import numpy as np
import matplotlib.pyplot as plt
ticks = np.array(['报告提交', '数据分析', '数据录入, '实地执行',
'问卷确定', '试访', '问卷设计', '项目确定'])
y_data = np.arange(1, 9)
x_data = np.array([0.5, 1.5, 1, 3, 0.5, 1, 1, 2])
fig,ax = plt.subplots(1, 1)
ax.barh(y_data, x_data, tick_label=ticks,
left=[7.5, 6, 5.5, 3, 3, 2, 1.5, 0], color='#CD5C5C')
[ax.spines[i].set_visible(False) for i in ['top', 'right']]
ax.se_title("任务甘特图")
ax.set_xlabel("日期")
ax.grid(alpha=0.5, axis='x')
plt.show()