實用程式碼Python(五)用Matplotlib畫甘特圖
阿新 • • 發佈:2018-12-02
說明
使用Matplotlib畫甘特圖,思想是使用條形圖繪製。
關鍵點,使用plt.barh(y,data,left=())
y是條形圖的位置,data是條形圖的大小,left是條形圖座標的距離。
案例如下。
測試程式碼
import matplotlib.pyplot as plt import numpy as np m=[1,2,1,2,2,3,2,1,3,2,3] t=[5,6,9,2,4,5,4,2,3,5,6] for i in range(len(m)): if m[i]==1: if i==0: plt.barh(0,t[i]) plt.text(np.sum(t[:i+1])/4,0,'J%s'%(i+1),color="white") else: plt.barh(0,t[i],left=(np.sum(t[:i]))) plt.text(np.sum(t[:i])+t[i]/4,0,'J%s'%(i+1),color="white") elif m[i]==2: if i==0: plt.barh(1,t[i]) plt.text(np.sum(t[:i+1])/4,1,'J%s'%(i+1),color="white") else: plt.barh(1,t[i],left=(np.sum(t[:i]))) plt.text(np.sum(t[:i])+t[i]/4,1,'J%s'%(i+1),color="white") else: if i==0: plt.barh(2,t[i]) plt.text(np.sum(t[:i+1])/4,2,'J%s'%(i+1),color="white") else: plt.barh(2,t[i],left=(np.sum(t[:i]))) plt.text(np.sum(t[:i])+t[i]/4,2,'J%s'%(i+1),color="white") n=3 plt.yticks(np.arange(n),np.arange(1,n+1)) plt.show()