python动态横道图_Python数据可视化:甘特图画法
大家好,我是一名Python數據分析師,我想把自己轉行成功之路上的經驗分享給大家,由此就有了我的人工智能四部曲:《15天學會Python編程》、《每天10分鐘,用Python學數據分析》、《Python數據可視化實戰》、《33天搞定機器學習》。
甘特圖
甘特圖(Gantt chart)又稱為橫道圖、條狀圖(Bar chart)。以提出者亨利·勞倫斯·甘特(Henry Laurence Gantt)先生的名字命名。 甘特圖以圖示通過活動列表和時間刻度表示出特定項目的順序與持續時間。一條線條圖,橫軸表示時間,縱軸表示項目,線條表示期間計劃和實際完成情況。直觀表明計劃何時進行,進展與要求的對比。便于管理者弄清項目的剩余任務,評估工作進度。
甘特圖的特點是突出了生產管理中最重要的因素— 時間,它的作用表現在三個方面: 1、計劃產量與計劃時間的對應關系。 2、每日的實際產量與預定計劃產量的對比關系。 3、一定時間內實際累計產量與同時期計劃累計產量的對比關系
用Matplotlib畫甘特圖import matplotlib.pyplot as plt
import numpy as np
ax=plt.gca()
[ax.spines[i].set_visible(False) for i in ["top","right"]]
def gatt(m,t):
"""甘特圖
m機器集
t時間集
"""
for j in range(len(m)):#工序j
i=m[j]-1#機器編號i
if j==0:
plt.barh(i,t[j])
plt.text(np.sum(t[:j+1])/8,i,'J%sT%s'%((j+1),t[j]),color="white",size=8)
else:
plt.barh(i,t[j],left=(np.sum(t[:j])))
plt.text(np.sum(t[:j])+t[j]/8,i,'J%sT%s'%((j+1),t[j]),color="white",size=8)
if __name__=="__main__":
"""測試代碼"""
m=np.random.randint(1,7,35)
t=np.random.randint(15,25,35)
gatt(m,t)
plt.yticks(np.arange(max(m)),np.arange(1,max(m)+1))
plt.show()
這里講講plt.barh這個函數
barh()表示繪制水平方向的條形圖,基本使用方法為:
barh(y, width, left=0, height=0.8, edgecolor)
各個參數解析如下:
- y:在y軸上的位置
- width:條形圖的寬度(從左到右的哦)
- left:開始繪制的x坐標
- edgecolor:圖形邊緣的顏色
用Plotly繪圖工具,繪制甘特圖
繪制甘特圖的函數為Plotly.figure_factoryz中create_gantt方法 通過參數事件Task,開始Start,結束Finish的時間的數據來繪制甘特圖
iimport 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),
{!-- PGC_COLUMN --} 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表示沒有進展。
總結
以上是生活随笔為你收集整理的python动态横道图_Python数据可视化:甘特图画法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nginx tomcat集群
- 下一篇: Mac M1安装arm64原生Pytho