首頁技術(shù)文章正文

Python培訓(xùn):繪制甘特圖

更新時(shí)間:2022-06-06 來源:黑馬程序員 瀏覽量:

  今天的Python培訓(xùn)課程,我們講解一下甘特圖的繪制方法。甘特圖亦稱為橫道圖、條狀圖,它通過活動(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所示。

1654494559392_某項(xiàng)目進(jìn)度.jpg

  圖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)目確定”“問卷設(shè)計(jì)”“試訪”“問卷確定”“實(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í)行',
                  '問卷確定', '試訪', '問卷設(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ù)的周期,條形越長代表周期越長。由圖8-11可知,“實(shí)地執(zhí)行”任務(wù)的周期最長,共計(jì)3天。

1654494689831_任務(wù)甘特圖.jpg

  圖8-11某新項(xiàng)目8個(gè)任務(wù)及各任務(wù)周期的甘特圖

分享到:
在線咨詢 我要報(bào)名
和我們在線交談!