更新時(shí)間:2022-06-06 來(lái)源:黑馬程序員 瀏覽量:
今天的Python培訓(xùn)課程,我們講解一下甘特圖的繪制方法。甘特圖亦稱為橫道圖、條狀圖,它通過(guò)活動(dòng)列表和時(shí)間刻度表示特定項(xiàng)目的順序與持續(xù)時(shí)間。甘特圖一般以時(shí)間為橫軸、項(xiàng)目為縱軸,可以直觀地展示每個(gè)項(xiàng)目的進(jìn)展情況,以便于管理者了解項(xiàng)目的剩余任務(wù)及評(píng)估工作進(jìn)度。例如,某公司于12月份跟蹤了某項(xiàng)目的進(jìn)度,如圖8-10所示。
圖8-10某項(xiàng)目進(jìn)度的甘特圖
觀察圖8-10可知,甘特圖類似于條形圖,它們的圖形都是橫向的矩形條,但甘特圖中每個(gè)矩形條的起始位置是不同的。使用pyplot模塊的barh()函數(shù)可以繪制一個(gè)甘特圖,只需要給left參數(shù)傳入值,指定每個(gè)矩形條x坐標(biāo)值即可。
已知某公司準(zhǔn)備開辟一個(gè)新項(xiàng)目,為確保項(xiàng)目的可行性,將該項(xiàng)目劃分為“項(xiàng)目確定”“問(wèn)卷設(shè)計(jì)”“試訪”“問(wèn)卷確定”“實(shí)地執(zhí)行”“數(shù)據(jù)錄入”“數(shù)據(jù)分析”“提交報(bào)告”共8個(gè)任務(wù),并指定了各任務(wù)的周期。下面使用barh()繪制一個(gè)甘特圖,示例代碼如下。
import numpy as np import matplotlib.pyplot as plt ticks = np.array(['提交報(bào)告', '數(shù)據(jù)分析', '數(shù)據(jù)錄入', '實(shí)地執(zhí)行', '問(wèn)卷確定', '試訪', '問(wèn)卷設(shè)計(jì)', '項(xiàng)目確定']) 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.set_title("任務(wù)甘特圖") ax.set_xlabel("日期") ax.grid(alpha=0.5, axis='x') plt.show()
運(yùn)行程序,效果如圖8-11所示。
圖8-11中,每個(gè)深灰色的條形代表任務(wù)的周期,條形越長(zhǎng)代表周期越長(zhǎng)。由圖8-11可知,“實(shí)地執(zhí)行”任務(wù)的周期最長(zhǎng),共計(jì)3天。
圖8-11某新項(xiàng)目8個(gè)任務(wù)及各任務(wù)周期的甘特圖