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