6 $SET_TERM_TEMPLATE='set term push; set term x11 enhanced; set term wxt enhanced; set term pop';
8 $MULTIPDF_FILENAME="all.pdf";
10 # Process command line options
12 getopts('bd:emnso:pPt:', \%opt);
13 $PLOT_SINGLE_EXPERIMENT = $opt{'m'} ? 0 : 1;
14 $EXPERIMENT_TITLES = $opt{'t'};
15 $PLOT_BOTH_DIRECTIONS=1 if $opt{'b'};
17 $DELAY_BOUND="[0:".$opt{'d'}."]" if $opt{'d'};
18 $SET_TERM_TEMPLATE='set term postscript color eps enhanced; set output "${FILE}.eps"' if $opt{'e'};
19 $SET_TERM_TEMPLATE='set term png enhanced; set output "${FILE}.png"' if $opt{'n'};
20 $SET_TERM_TEMPLATE='set term svg enhanced; set output "${FILE}.svg"' if $opt{'s'};
21 $MULTIPDF_FILENAME=$opt{'o'} if $opt{'o'};
23 $SET_TERM_TEMPLATE='set term postscript color landscape enhanced';
27 $SET_TERM_TEMPLATE='set term postscript color landscape enhanced';
28 $MULTIPLE_GRAPHS_IN_PDF=1;
29 $GNUPLOT_CMD_FILE="plot_commands.$$";
30 unlink ${GNUPLOT_CMD_FILE};
33 if ($#ARGV < 0 && -r "delay_stats.dat") {$ARGV[0]="delay_stats.dat";}
35 # Process the data files and plot graph(s)
36 foreach $dat_file (@ARGV) {
37 ($FILE, , ) = fileparse($dat_file, (".dat"));
39 # Get labels from data file
47 $COMMAND="Results of: $_";
48 #$COMMAND="Results of: grep -o 'wclient.*'|sed -e 's/ -o [^ ]*//' -e 's/ [^ ]* ?$//')"
49 } elsif (/^#[^#] */) {
56 $STREAMS =~ s/\n/\\n/g;
58 if ($MULTIPLE_GRAPHS_IN_PDF) {
59 open CMD, ">>$GNUPLOT_CMD_FILE";
60 } elsif ($PDF_OUTPUT) {
61 open CMD, "| gnuplot | ps2pdf - ${FILE}.pdf";
63 open CMD, "| gnuplot -persist";
66 # open CMD, ">&STDOUT";
67 $SET_TERM = $SET_TERM_TEMPLATE;
68 $SET_TERM =~ s/\${FILE}/$FILE/;
72 set xlabel "Response-Time [ms]"
73 set ylabel "Cumulative % of packets"
74 set key right bottom nobox
75 set style data linespoints
80 set label "${COMMAND}" noenhanced at graph 0,1.3
81 set label "${STREAMS}" noenhanced at graph 0,1.2 font "Helvetica,9"
83 if ($PLOT_SINGLE_EXPERIMENT) {
85 set style line 1 lt 1 lc rgb "red"
86 set style line 2 lt 1 lc rgb "green"
87 set style line 3 lt 1 lc rgb "blue"
88 set style line 4 lt 1 lc rgb "magenta"
89 set style line 5 lt 2 lc rgb "red" lw 2
90 set style line 6 lt 2 lc rgb "green" lw 2
91 set style line 7 lt 2 lc rgb "blue" lw 2
92 set style line 8 lt 2 lc rgb "magenta" lw 2
93 set style line 9 lt 3 lc rgb "red" lw 2
94 set style line 10 lt 3 lc rgb "green" lw 2
95 set style line 11 lt 3 lc rgb "blue" lw 2
96 set style line 12 lt 3 lc rgb "magenta" lw 2
98 print CMD qq/plot $DELAY_BOUND [0.01:100]\\
99 "${FILE}.dat" index 0 with linespoints ls 1 title "AC\\\\_VO",\\
100 "${FILE}.dat" index 1 with linespoints ls 2 title "AC\\\\_VI",\\
101 "${FILE}.dat" index 2 with linespoints ls 3 title "AC\\\\_BE",\\
102 "${FILE}.dat" index 3 with linespoints ls 4 title "AC\\\\_BK"/;
104 if ($PLOT_BOTH_DIRECTIONS) {
106 "${FILE}.dat" index 0 using 1:3 with lines ls 5 title "AC\\\\_VO cs",\\
107 "${FILE}.dat" index 1 using 1:3 with lines ls 6 title "AC\\\\_VI cs",\\
108 "${FILE}.dat" index 2 using 1:3 with lines ls 7 title "AC\\\\_BE cs",\\
109 "${FILE}.dat" index 3 using 1:3 with lines ls 8 title "AC\\\\_BK cs",\\
110 "${FILE}.dat" index 0 using 1:4 with lines ls 9 title "AC\\\\_VO sc",\\
111 "${FILE}.dat" index 1 using 1:4 with lines ls 10 title "AC\\\\_VI sc",\\
112 "${FILE}.dat" index 2 using 1:4 with lines ls 11 title "AC\\\\_BE sc",\\
113 "${FILE}.dat" index 3 using 1:4 with lines ls 12 title "AC\\\\_BK sc"
119 # Multiple experiments in a single plot
121 set style line 1 lt 1 lc rgb "red" lw 2
122 set style line 2 lt 1 lc rgb "green" lw 2
123 set style line 3 lt 1 lc rgb "blue" lw 2
124 set style line 4 lt 1 lc rgb "magenta" lw 2
125 set style line 5 lt 2 lc rgb "red" lw 2
126 set style line 6 lt 2 lc rgb "green" lw 2
127 set style line 7 lt 2 lc rgb "blue" lw 2
128 set style line 8 lt 2 lc rgb "magenta" lw 2
129 set style line 9 lt 3 lc rgb "red" lw 2
130 set style line 10 lt 3 lc rgb "green" lw 2
131 set style line 11 lt 3 lc rgb "blue" lw 2
132 set style line 12 lt 3 lc rgb "magenta" lw 2
134 my ($ls1, $ls2, $ls3, $ls4) = (1,2,3,4);
135 my @titles = split(/;/, $EXPERIMENT_TITLES);
137 my $t=$titles[$experiment];
139 print CMD qq/plot $DELAY_BOUND [0.01:100]\\
140 "${FILE}.dat" index 0 with lines ls $ls1 title "AC\\\\_VO $t",\\
141 "${FILE}.dat" index 1 with lines ls $ls2 title "AC\\\\_VI $t",\\
142 "${FILE}.dat" index 2 with lines ls $ls3 title "AC\\\\_BE $t",\\
143 "${FILE}.dat" index 3 with lines ls $ls4 title "AC\\\\_BK $t"/;
144 foreach $dat_file (@ARGV[1,2]) {
145 last if (!defined $dat_file);
147 $t=$titles[$experiment];
149 ($FILE, , ) = fileparse($dat_file, (".dat"));
150 ($ls1, $ls2, $ls3, $ls4) = map($_+4, ($ls1, $ls2, $ls3, $ls4));
152 "${FILE}.dat" index 0 with lines ls $ls1 title "AC\\\\_VO $t",\\
153 "${FILE}.dat" index 1 with lines ls $ls2 title "AC\\\\_VI $t",\\
154 "${FILE}.dat" index 2 with lines ls $ls3 title "AC\\\\_BE $t",\\
155 "${FILE}.dat" index 3 with lines ls $ls4 title "AC\\\\_BK $t"/;
164 if ($MULTIPLE_GRAPHS_IN_PDF) {
165 system("gnuplot $GNUPLOT_CMD_FILE|ps2pdf - $MULTIPDF_FILENAME");
166 unlink ${GNUPLOT_CMD_FILE};