[418] | 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
|
---|