matlab畫甘特圖


近期為發小論文一直在研究作業調度問題,好不easy把數據搞出來了,結果又被畫甘特圖給難住了,查了各種資料。anygantt,highchart。Jfree chart等都試了,效果都不咋好。無意中留意到網上實用matlab畫甘特圖的,自己改動了一下。感覺畫出的圖還能夠。感覺還是matlab好用啊。代碼簡單,函數庫強大。廢話少說直接上代碼。

%fileName:mt06_final.mt06
%fileDescription:create a gatt chart whith the data given
%creator:by mnmlist
%Version:1.0
%last edit time:06-05-2015 
clear;  
axis([0,56,0,6.5]);%x軸 y軸的范圍
set(gca,'xtick',0:2:56) ;%x軸的增長幅度
set(gca,'ytick',0:1:6.5) ;%y軸的增長幅度
xlabel('加工時間'),ylabel('機器號');%x軸 y軸的名稱
title('mt06 的一個最佳調度(最短完工時間為55)');%圖形的標題
n_bay_nb=6;%total bays //機器數目
n_task_nb = 36;%total tasks //任務數目
%x軸 相應於繪圖位置的起始坐標x
n_start_time=[0 1 0 8 8 13 6 10 13 1 16 13 22 13 22 25 18 27 25 19 28 31 28 31 38 30 38 42 45 38 48 45 49 49 48 52];%start time of every task //每一個工序的開始時間
%length 相應於每一個圖形在x軸方向的長度
n_duration_time =[1 5 8 5 5 3 4 8 10 3 3 9 3 5 5 6 9 3 5 9 10 1 10 7 4 8 10 3 9 7 3 4 6 1 4 1];%duration time of every task //每一個工序的持續時間
%y軸 相應於繪圖位置的起始坐標y
n_bay_start=[2 2 1 1 2 1 3 5 4 0 3 2 1 0 2 1 0 3 4 5 0 1 5 3 5 4 0 5 5 4 0 4 4 2 3 3]; %bay id of every task ==工序數目,即在哪一行畫線
%工序號,能夠依據工序號選擇使用哪一種顏色
n_job_id=[0 2 1 3 1 5 2 2 1 0 5 4 4 3 3 0 2 3 4 5 5 2 1 0 4 3 1 0 3 2 4 5 0 5 1 4];%
rec=[0,0,0,0];%temp data space for every rectangle 
color=['r','g','b','c','m','y'];
for i =1:n_task_nb  
  rec(1) = n_start_time(i);%矩形的橫坐標
  rec(2) = n_bay_start(i)+0.7;  %矩形的縱坐標
  rec(3) = n_duration_time(i);  %矩形的x軸方向的長度
  rec(4) = 0.6; 
  txt=sprintf('p(%d,%d)=%d',n_bay_start(i)+1,n_job_id(i)+1,n_duration_time(i));%將機器號,工序號,加工時間連城字符串
   rectangle('Position',rec,'LineWidth',0.5,'LineStyle','-','FaceColor',color(n_job_id(i)+1));%draw every rectangle 
   text(n_start_time(i)+0.2,(n_bay_start(i)+1),txt,'FontWeight','Bold','FontSize',18);%label the id of every task ,字體的坐標和其他特性
end  

有圖有真相:
mt06的一個最優調度方案


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM