实用代码Python(七)甘特图画法

代码(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()

测试

实用代码Python(七)甘特图画法_第1张图片

你可能感兴趣的:(Python实用代码)