python动态横道图_Python数据可视化:甘特图画法
大家好,我是一名Python數(shù)據(jù)分析師,我想把自己轉(zhuǎn)行成功之路上的經(jīng)驗(yàn)分享給大家,由此就有了我的人工智能四部曲:《15天學(xué)會(huì)Python編程》、《每天10分鐘,用Python學(xué)數(shù)據(jù)分析》、《Python數(shù)據(jù)可視化實(shí)戰(zhàn)》、《33天搞定機(jī)器學(xué)習(xí)》。
甘特圖
甘特圖(Gantt chart)又稱為橫道圖、條狀圖(Bar chart)。以提出者亨利·勞倫斯·甘特(Henry Laurence Gantt)先生的名字命名。 甘特圖以圖示通過活動(dòng)列表和時(shí)間刻度表示出特定項(xiàng)目的順序與持續(xù)時(shí)間。一條線條圖,橫軸表示時(shí)間,縱軸表示項(xiàng)目,線條表示期間計(jì)劃和實(shí)際完成情況。直觀表明計(jì)劃何時(shí)進(jìn)行,進(jìn)展與要求的對比。便于管理者弄清項(xiàng)目的剩余任務(wù),評估工作進(jìn)度。
甘特圖的特點(diǎn)是突出了生產(chǎn)管理中最重要的因素— 時(shí)間,它的作用表現(xiàn)在三個(gè)方面: 1、計(jì)劃產(chǎn)量與計(jì)劃時(shí)間的對應(yīng)關(guān)系。 2、每日的實(shí)際產(chǎn)量與預(yù)定計(jì)劃產(chǎn)量的對比關(guān)系。 3、一定時(shí)間內(nèi)實(shí)際累計(jì)產(chǎn)量與同時(shí)期計(jì)劃累計(jì)產(chǎn)量的對比關(guān)系
用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機(jī)器集
t時(shí)間集
"""
for j in range(len(m)):#工序j
i=m[j]-1#機(jī)器編號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這個(gè)函數(shù)
barh()表示繪制水平方向的條形圖,基本使用方法為:
barh(y, width, left=0, height=0.8, edgecolor)
各個(gè)參數(shù)解析如下:
- y:在y軸上的位置
- width:條形圖的寬度(從左到右的哦)
- left:開始繪制的x坐標(biāo)
- edgecolor:圖形邊緣的顏色
用Plotly繪圖工具,繪制甘特圖
繪制甘特圖的函數(shù)為Plotly.figure_factoryz中create_gantt方法 通過參數(shù)事件Task,開始Start,結(jié)束Finish的時(shí)間的數(shù)據(jù)來繪制甘特圖
iimport plotly as py
import plotly.figure_factory as ff
pyplt = py.offline.plot
df = [dict(Task="項(xiàng)目1", Start='2019-01-01', Finish='2019-02-28', Complete=10),
dict(Task="項(xiàng)目2", Start='2018-12-05', Finish='2019-04-15', Complete=10),
dict(Task="項(xiàng)目3", Start='2019-02-20', Finish='2019-05-30', Complete=50),
dict(Task="項(xiàng)目4", Start='2019-03-20', Finish='2019-06-30', Complete=50),
dict(Task="項(xiàng)目5", Start='2019-01-12', Finish='2019-04-28', Complete=100),
{!-- PGC_COLUMN --} dict(Task="項(xiàng)目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')
可以看到右邊出現(xiàn)了索引條,每項(xiàng)工作后的complete屬性即為其對應(yīng)的索引值,在create_gamtt函數(shù)中
設(shè)置,index_col = ‘Complete’,則會(huì)出現(xiàn)相同條形對應(yīng)相同顏色的,可以根據(jù)顏色來盤點(diǎn)任務(wù)大概對應(yīng)的索引值是多少。
這個(gè)值得范圍0-100,用來反映工作完成的進(jìn)度,100表示全部完成,0表示沒有進(jìn)展。
總結(jié)
以上是生活随笔為你收集整理的python动态横道图_Python数据可视化:甘特图画法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nginx tomcat集群
- 下一篇: WLAN配置三层直连直接转发