问题描述:
假设有15个工位,要分配给50个人,请根据排班表画出甘特图。
问题分析:
甘特图是常用的调度、规划、安排工具。Matlab可以容易的将Excel表的计划安排转换为甘特图,便于直观分析安排是否合理。
该问题较为简单,实际上就是将对应关系展示出来。画图部分采用画矩形块的函数patch即可。
代码:
clc
clear
close all
data = xlsread('分配方案.xlsx');
XuHao = data(:,1);
ATime = data(:,2);
LTime = data(:,3);
JiWei = data(:,4);
[a,b]=unique(JiWei);
for iloop=1:length(XuHao)
randmColor = rand(1,3);
patch([ATime(iloop),LTime(iloop),LTime(iloop),ATime(iloop)],[JiWei(iloop)-0.4,JiWei(iloop)-0.4,JiWei(iloop)+0.4,JiWei(iloop)+0.4],randmColor,'EdgeColor','k','FaceAlpha',0.5)
text((ATime(iloop)+LTime(iloop))/2 ,JiWei(iloop), num2str(iloop),'HorizontalAlignment','center','VerticalAlignment','middle','color','black')
end
datetick('x','HH:MM')
xlabel('时间')
ylabel('工位号')
title('工位分配甘特图')
ylim([0.5 max(a)+0.5])
yticks(1:max(a))