實用程式碼Python(七)甘特圖畫法
阿新 • • 發佈:2018-12-16
程式碼(gatt.py)
def gatt(m, job, t): """甘特圖 m機器集 job工序順序集 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%s\nT%s' % ((job[j]), 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%s\nT%s' % ((job[j]), t[j]), color="white", size=8) plt.yticks(np.arange(max(m)), np.arange(1, max(m) + 1))
程式碼(test.py)
from gatt import gatt, np, plt if __name__ == "__main__": """測試程式碼""" m = np.random.randint(1, 7, 15) # 生成工序所在機器編號 job = np.arange(1, 16) # 生成工序編號 np.random.shuffle(job) t = np.random.randint(18, 25, 15) # 生成工序時間 gatt(m, job, t) plt.savefig("test.png", dpi=800) plt.show()