近期为发小论文一直在研究作业调度问题,好不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

有图有真相:

最新文章

  1. 图文:通过sql server 连接mysql
  2. 关于在linux中使用图形界面的网络管理工具
  3. Linux应用总结(1):自动删除n天前日志
  4. 【HTML5】浅析html使用SSE(Server-Sent Events)连接JSP
  5. 每天一个linux命令(20):linux chmod命令
  6. Java Socket 网络编程心跳设计概念
  7. 【LeetCode 234】Palindrome Linked List
  8. ADO.NET 快速入门(十):过滤数据
  9. C++ Primer 5th 第4章 表达式
  10. 如何让一个DIV水平,垂直方向都居中于浏览器?
  11. 如何用Python爬虫实现百度图片自动下载?
  12. Jenkins - SSH认证方式拉取Git代码
  13. java 字节码 指令集 汇编(转)
  14. 类调用自己的静态方法必须把该方法设置为public
  15. SNMP学习笔记之SNMP报文以及不同版本(SNMPv1、v2c、v3)的区别
  16. .net Cookie的操作
  17. 洛谷P5057 [CQOI2006]简单题(线段树)
  18. CentOS 7.1使用yum安装MySql5.6.24
  19. sad 关于一些html5新属性还需要用https才能支持
  20. 3DMAX 处理反面

热门文章

  1. struts2笔记06-ServletXxxAware接口
  2. c语言中的制表符\t与空格
  3. cdn与http缓存
  4. 蓝牙1.1、蓝牙1.2、蓝牙2.0(蓝牙2.0+EDR)区别
  5. 2014年同年CFA考试中哪些CFA资料没有变化?
  6. Android流式布局实现
  7. Ceph对象存储网关中的索引工作原理<转>
  8. jQuery为多个元素绑定相同的事件
  9. tigervnc*
  10. mina 实例(转载)