Python使用Plotly繪圖工具,繪制甘特圖


今天來講一下如何使用Python 的繪圖工具Plotly來繪制甘特圖的方法

甘特圖大家應該了解熟悉,就是通過條形來顯示項目的進度、時間安排等相關情況的。

我們今天來學習一下,如何使用ployly來繪制甘特圖

繪制甘特圖的函數為Plotly.figure_factoryz中create_gantt方法

通過參數事件Task,開始Start,結束Finish的時間的數據來繪制甘特圖

import plotly as py
import plotly.figure_factory as ff

pyplt = py.offline.plot

df = [dict(Task = "項目1", Start = '2019-02-01', Finish = '2019-05-28'),
      dict(Task = "項目2", Start = '2019-03-05', Finish = '2019-04-15'),
      dict(Task = "項目3", Start = '2019-03-20', Finish = '2019-05-30')]

fig = ff.create_gantt(df)
pyplt(fig, filename='tmp/1.html')

運行上訴代碼,我們可以看到縱坐標為我們的的項目數量。橫坐標時間不短增加,越接近縱坐標的,說明事件發生的情況越早。

還可以在甘特圖中加入數字索引值

代碼如下:

import plotly as py
import plotly.figure_factory as ff

pyplt = py.offline.plot
df = [dict(Task="項目1", Start='2019-01-01', Finish='2019-02-28', Complete=10),
      dict(Task="項目2", Start='2018-12-05', Finish='2019-04-15', Complete=10),
      dict(Task="項目3", Start='2019-02-20', Finish='2019-05-30', Complete=50),
      dict(Task="項目4", Start='2019-03-20', Finish='2019-06-30', Complete=50),
      dict(Task="項目5", Start='2019-01-12', Finish='2019-04-28', Complete=100),
      dict(Task="項目6", Start='2019-03-07', Finish='2019-08-21', Complete=100)]

fig = ff.create_gantt(df,  index_col='Complete', show_colorbar=True)
pyplt(fig, filename='tmp/1.html')

 

 

 運行上訴代碼,可以看到右邊出現了索引條,每項工作后的complete屬性即為其對應的索引值,在create_gamtt函數中

設置,index_col = ‘Complete’,則會出現相同條形對應相同顏色的,可以根據顏色來盤點任務大概對應的索引值是多少。

這個值得范圍0-100,用來反映工作完成的進度,100表示全部完成,0表示沒有進展。

接下來講解如何按照類別來進行索引

import plotly as py
import plotly.figure_factory as ff
pyplt = py.offline.plot

df = [dict(Task="項目1", Start='2019-01-01', Finish='2019-02-02', Resource='Complete'),
      dict(Task="項目2", Start='2019-02-15', Finish='2019-03-15', Resource='Incomplete'),
      dict(Task="項目3", Start='2019-01-17', Finish='2019-02-17', Resource='Not Started'),
      dict(Task="項目4", Start='2019-01-17', Finish='2019-02-17', Resource='Complete'),
      dict(Task="項目5", Start='2019-03-10', Finish='2019-03-20', Resource='Not Started'),
      dict(Task="項目6", Start='2019-04-01', Finish='2019-04-20', Resource='Not Started'),
      dict(Task="項目7", Start='2019-05-18', Finish='2019-06-18', Resource='Not Started'),
      dict(Task="項目8", Start='2019-01-14', Finish='2019-03-14', Resource='Complete')]

colors = {'Not Started': 'rgb(220, 0, 0)',
          'Incomplete': (1, 0.9, 0.16),
          'Complete': 'rgb(0, 255, 100)'}

fig = ff.create_gantt(df, colors=colors, index_col='Resource', group_tasks=True)
pyplt(fig, filename='tmp/1.html')

運行上訴代碼,得到如下圖所示內容

這里我們通過按照不同的顏色,來分別項目的類型。同一顏色,為同一項目。在每一項數據中

Resource代表此項工作所屬的狀態。這里分了三種狀態。
通過在設置create_gantt函數中的index_col = 'Resource'即可完成。

color屬性用於設置不同狀態對應的顏色。

 甘特圖的基本畫法就在這里了。感謝大家閱讀。謝謝


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM