Positioning Insets |
To position an inset by using a compass point position, specify the value N, NE, E, SE, S, SW, W, or NW with the POSITION= option. The default position of the inset is NW. The following statements produce a histogram to show the position of the inset for the eight compass points:
data Score; input Student $ PreTest PostTest @@; label ScoreChange = 'Change in Test Scores'; ScoreChange = PostTest - PreTest; datalines; Capalleti 94 91 Dubose 51 65 Engles 95 97 Grant 63 75 Krupski 80 75 Lundsford 92 55 Mcbane 75 78 Mullen 89 82 Nguyen 79 76 Patel 71 77 Si 75 70 Tanaka 87 73 ;
title 'Test Scores for a College Course'; ods graphics off; proc univariate data=Score noprint; histogram PreTest / midpoints = 45 to 95 by 10; inset n / cfill=blank header='Position = NW' pos=nw; inset mean / cfill=blank header='Position = N ' pos=n ; inset sum / cfill=blank header='Position = NE' pos=ne; inset max / cfill=blank header='Position = E ' pos=e ; inset min / cfill=blank header='Position = SE' pos=se; inset nobs / cfill=blank header='Position = S ' pos=s ; inset range / cfill=blank header='Position = SW' pos=sw; inset mode / cfill=blank header='Position = W ' pos=w ; label PreTest = 'Pretest Score'; run;
To position an inset in one of the four margins that surround the plot area, specify the value LM, RM, TM, or BM with the POSITION= option. Margin positions are recommended if you list a large number of statistics in the INSET statement. If you attempt to display a lengthy inset in the interior of the plot, the inset is likely to collide with the data display.
To position an inset with coordinates, use POSITION=(x,y). You specify the coordinates in axis data units or in axis percentage units (the default). Note: You cannot position an inset with coordinates when producing ODS Graphics output.
If you specify the DATA option immediately following the coordinates, PROC UNIVARIATE positions the inset by using axis data units. For example, the following statements place the bottom left corner of the inset at 45 on the horizontal axis and 10 on the vertical axis:
title 'Test Scores for a College Course'; ods graphics off; proc univariate data=Score noprint; histogram PreTest / midpoints = 45 to 95 by 10; inset n / header = 'Position=(45,10)' position = (45,10) data; run;
By default, the specified coordinates determine the position of the bottom left corner of the inset. To change this reference point, use the REFPOINT= option (see below).
If you omit the DATA option, PROC UNIVARIATE positions the inset by using axis percentage units. The coordinates in axis percentage units must be between 0 and 100. The coordinates of the bottom left corner of the display are (0,0), while the upper right corner is (100, 100). For example, the following statements create a histogram and use coordinates in axis percentage units to position the two insets:
title 'Test Scores for a College Course'; ods graphics off; proc univariate data=Score noprint; histogram PreTest / midpoints = 45 to 95 by 10; inset min / position = (5,25) header = 'Position=(5,25)' refpoint = tl; inset max / position = (95,95) header = 'Position=(95,95)' refpoint = tr; run;
The REFPOINT= option determines which corner of the inset to place at the coordinates that are specified with the POSITION= option. The first inset uses REFPOINT=TL, so that the top left corner of the inset is positioned 5% of the way across the horizontal axis and 25% of the way up the vertical axis. The second inset uses REFPOINT=TR, so that the top right corner of the inset is positioned 95% of the way across the horizontal axis and 95% of the way up the vertical axis.
A sample program for these examples, univar3.sas, is available in the SAS Sample Library for Base SAS software.