1 | (* This file plots two graphs side by side with a tricky legend format:
|
---|
2 | * There are 5 legend entries, one of which is of a curve containing a
|
---|
3 | * line. The desire is to make the legend have two columns, the first
|
---|
4 | * with the first three legend entries, and the second with the last
|
---|
5 | * two.
|
---|
6 | *
|
---|
7 | * The way that this is done is to actually plot four graphs -- two sets
|
---|
8 | * of two graphs superimposed on each other. The first of the two
|
---|
9 | * graphs has the first three curves, and the second has the last two.
|
---|
10 | * Thus, the first can set its legend to be the first column, and the
|
---|
11 | * second can set its legend to be the second column.
|
---|
12 | *
|
---|
13 | * To get the two columns is pretty simple. In each graph, the
|
---|
14 | * x and y coordinates of the legends are explicitly set. For the
|
---|
15 | * first column, the x coordinate is 0, and for the second column,
|
---|
16 | * the x coordinate is 5.5.
|
---|
17 | *
|
---|
18 | * A potential problem with this graph is that in the first set of
|
---|
19 | * legends, there is a line (the "Merge Sort" curve), while in the
|
---|
20 | * second set there is not. Thus, if nothing is done with the midspace
|
---|
21 | * and linelength paramters, the second columns marks will appear closer
|
---|
22 | * to the text than in the first column. The solution to this was to
|
---|
23 | * explicitly set the linelength and midspace in the first legend to
|
---|
24 | * be .80 and .25 respectively. This means that in the first legend, the
|
---|
25 | * marks are 0.65 units away from the text (in the presence of a line,
|
---|
26 | * the marks are (midspace + linelength/2) away from the text. In
|
---|
27 | * the absence of a line, the marks are simply (midspace) away from the
|
---|
28 | * text. Thus, midspace is set to be 0.65 in the second legend column.
|
---|
29 | *)
|
---|
30 |
|
---|
31 | (* Set up the axes of the first graph. Translate it to the left of the
|
---|
32 | * page *)
|
---|
33 |
|
---|
34 | newgraph
|
---|
35 | x_translate -1.37
|
---|
36 | yaxis size 1.9 min 0 max 40 precision 0 hash 10 mhash 1
|
---|
37 | label : Time (sec)
|
---|
38 | fontsize 8
|
---|
39 | xaxis size 2.14 min 0 max 10 hash 2 mhash 1
|
---|
40 | label : Heap Size (MBytes)
|
---|
41 | fontsize 8
|
---|
42 | title : Graph 9: Checkpoint Time of Other Benchmarks.
|
---|
43 | fontsize 10
|
---|
44 |
|
---|
45 | (* Draw the first three curves *)
|
---|
46 | newcurve
|
---|
47 | label : Merge Sort
|
---|
48 | marktype circle fill 0.0
|
---|
49 | linetype solid
|
---|
50 | pts
|
---|
51 | .789 5.5414
|
---|
52 | 2.985 13.9958
|
---|
53 | 3.962 17.2362
|
---|
54 | 4.938 21.0804
|
---|
55 | 7.868 32.4082
|
---|
56 | 9.821 39.8312
|
---|
57 | newcurve
|
---|
58 | label : Travelling Salesman
|
---|
59 | marktype triangle fill 0
|
---|
60 | linetype none
|
---|
61 | pts
|
---|
62 | .064 2.359
|
---|
63 | newcurve
|
---|
64 | label : Pattern Match
|
---|
65 | marktype diamond fill 1.0
|
---|
66 | linetype none
|
---|
67 | pts
|
---|
68 | 1.233 6.374
|
---|
69 |
|
---|
70 | (* set the legend *)
|
---|
71 | legend linelength .8 midspace .25 x 0 y 47.5 defaults fontsize 7
|
---|
72 |
|
---|
73 | (* Now make a second graph for the second curve with the same axes *)
|
---|
74 | copygraph
|
---|
75 | xaxis nodraw
|
---|
76 | yaxis nodraw
|
---|
77 |
|
---|
78 | (* Draw the last two curves *)
|
---|
79 | newcurve
|
---|
80 | label : Bubble Sort
|
---|
81 | marktype cross fill 1.0
|
---|
82 | linetype none
|
---|
83 | pts
|
---|
84 | .513 3.91
|
---|
85 | newcurve
|
---|
86 | label : Matrix Multiplication
|
---|
87 | marktype box fill 1
|
---|
88 | linetype none
|
---|
89 | pts
|
---|
90 | 3 14.71
|
---|
91 |
|
---|
92 | (* set the second legend to be a second column from the first *)
|
---|
93 | legend x 5.5 midspace .65
|
---|
94 |
|
---|
95 | (* The second of these graphs is just like the first only it is translated
|
---|
96 | to the right *)
|
---|
97 |
|
---|
98 | copygraph
|
---|
99 | x_translate 1.7
|
---|
100 | xaxis draw
|
---|
101 | yaxis draw
|
---|
102 | yaxis min 0 max 5 hash 1 mhash 1
|
---|
103 | title : Graph 10: Checkpoint Overhead of Other Benchmarks.
|
---|
104 | fontsize 10
|
---|
105 |
|
---|
106 | newcurve
|
---|
107 | label : Merge Sort
|
---|
108 | marktype circle fill 0.0
|
---|
109 | linetype solid
|
---|
110 | pts
|
---|
111 | .789 0.5954
|
---|
112 | 2.985 3.8368
|
---|
113 | 3.962 3.3598
|
---|
114 | 4.938 3.6288
|
---|
115 | 7.868 4.3096
|
---|
116 | 9.821 4.377
|
---|
117 |
|
---|
118 | newcurve
|
---|
119 | label : Travelling Salesman
|
---|
120 | marktype triangle fill 0
|
---|
121 | linetype none
|
---|
122 | pts
|
---|
123 | .064 0.17
|
---|
124 |
|
---|
125 | newcurve
|
---|
126 | label : Pattern Match
|
---|
127 | marktype diamond fill 1.0
|
---|
128 | linetype none
|
---|
129 | pts
|
---|
130 | 1.233 0.07
|
---|
131 |
|
---|
132 | legend linelength .8 midspace .25 x 0 y 5.9 defaults fontsize 7
|
---|
133 |
|
---|
134 | copygraph
|
---|
135 | xaxis nodraw
|
---|
136 | yaxis nodraw
|
---|
137 |
|
---|
138 | newcurve
|
---|
139 | label : Bubble Sort
|
---|
140 | marktype cross fill 1.0
|
---|
141 | linetype none
|
---|
142 | pts
|
---|
143 | .513 0.07
|
---|
144 |
|
---|
145 | newcurve
|
---|
146 | label : Matrix Multiplication
|
---|
147 | marktype box fill 1
|
---|
148 | linetype none
|
---|
149 | pts
|
---|
150 | 3 0.75
|
---|
151 |
|
---|
152 | legend x 5.5 midspace .65
|
---|