Gnuplot:如何绘制任务调度图形

时间:2016-12-17 16:15:32

标签: plot scheduled-tasks gnuplot

我是Gnuplot的新手,我刚读了这个基础教程:http://people.duke.edu/~hpgavin/gnuplot.html

我想绘制这些数据:

Processor1 t4 2 7 t3 7 12 t2 12 17
Processor2 t5 0 9 t1 10 13

结果图应该是这样的图像:

enter image description here

我在网上搜索过,但我没有找到这样的情节,我发现最相似的是叠条,但它们不是我需要的。

有人知道如何使用Gnuplot接近这个情节(可能是其他绘图程序,我选择Gnuplot,因为它是一个众所周知的工具)。

@edit 1

上面的图片来自http://rtime.felk.cvut.cz/scheduling-toolbox/manual/algorithms-scheduling.php

@edit 2

我要感谢Michael O.生成我的数据绘图,即使是手动绘图也很棒。

实际上我放弃了尝试用gnuplot这样的通用绘图程序来绘制这个图。我开始使用生成上图的matlab工具箱:rtime.felk.cvut.cz/scheduling-toolbox

使用此工具箱绘制此图非常简单,我将在此处编写用于绘制上述数据的图形的脚本。

脚本:schedulingSample.m

addpath(path,'/home/carloshmm/Matlab/toolbox/TORSCHE/scheduling/');
t1 = task('t1', 3, 10, inf, inf, 1, 2);
t2 = task('t2', 5, 12, inf, inf, 1, 1);
t3 = task('t3', 5, 7, inf, inf, 1, 1);
t4 = task('t4', 5, 2, inf, inf, 1, 1);
t5 = task('t5', 9, 0, inf, inf, 1, 2);
T = [t1 t2 t3 t4 t5];
add_schedule(T, 'Task Scheduling Graphic', T.ReleaseTime, T.ProcTime, T.Processor);
plot(T);
waitforbuttonpress;

结果情节:

enter image description here

1 个答案:

答案 0 :(得分:0)

嗯,这是我尝试“手动”绘制图表,即不直接用gnuplot读取数据,因为我认为这是不可能的。如果你想自动绘图,我建议从一些外部程序创建gnuplot脚本,你可以在那里计算所有位置和绘图参数。

set term pngcairo dashed size 800,400
set output 'boxes.png'
set style fill solid
unset ytics
set ytics('Processor1' 1.5,'Processor2' 0.5)
unset key
set xrange [-1:20]
set yrange [0:2]
set xlabel 't'
set object 1 rectangle from 2,1 to 7,1.7 fc rgb 'gold'
set object 2 rectangle from 7,1 to 12,1.7 fc rgb 'light-green'
set object 3 rectangle from 12,1 to 17,1.7 fc rgb 'light-blue'
set object 4 rectangle from 0,0 to 9,0.7 fc rgb 'red'
set object 5 rectangle from 10,0 to 13,0.7 fc rgb 'blue'
set arrow 1 from 2,1 to 2,1.85 filled fc rgb 'gold'
set arrow 2 from 7,1 to 7,1.85 filled fc rgb 'light-green'
set arrow 3 from 12,1 to 12,1.85 filled fc rgb 'light-blue'
set arrow 4 from 0,0 to 0,0.85 filled fc rgb 'red'
set arrow 5 from 10,0 to 10,0.85 filled fc rgb 'blue'
set label 1 't4' at 2,1.05
set label 2 't3' at 7,1.05
set label 3 't2' at 12,1.05
set label 4 't5' at 0,0.05
set label 5 't1' at 10,0.05
plot 1 w l lt 2 lc rgb 'red'

enter image description here