/**********************************************************************/
goptions ftext=swiss gunit=pct htext=2 rotate=landscape;
/* Input information for each model. Variables */
/* include: */
/* */
/* SHARE -- percentage of vehicles of that model */
/* in lot */
/* RATING -- rating on "sportiness" scale (0-10) */
/* PRICE -- list price (in 1000's of dollars) */
data autos;
input manufact $char9. model $ share rating price;
cards;
Mazda Miata .10 9.3 15.2
Chevrolet S-10 .10 2.5 14.4
Infiniti M30 .075 7.2 24.3
Ford Taurus .10 4.3 13.3
Plymouth Voyager .20 1.6 12.5
Toyota Cressida .15 6.0 23.1
Honda Civic .10 3.7 7.0
Acura Integra .175 6.5 12.1
;
/* Create an Annotate data set to label categories on */
/* axes and draw labels inside bubbles. */
data anno;
length style $ 8 text $ 17;
/* First create axis category labels using the */
/* SWISSBI font. XSYS, YSYS and HSYS specify the */
/* units used when determining the location and */
/* size of text--in this case percentage of the */
/* procedure output area. POSITION is used to */
/* justify the text as appropriate. */
style='swissbi'; size=5;
xsys='5'; ysys='5'; hsys='5';
function='label'; when='a'; color='black';
if _n_=1 then do;
position='6'; /* Left-align text */
x=2; y=10; text='Economical and'; /* Lower left */
output;
y=5; text='Practical'; output;
y=98; text='Economical and'; /* Upper left */
output;
y=93; text='Sporty'; output;
position='4'; /* Right-align text */
x=98; y=10; text='Expensive and'; /* Lower right */
output;
y=5; text='Practical'; output;
y=98; text='Expensive and'; /* Upper right */
output;
y=93; text='Sporty'; output;
end;
/* Use the information from the AUTOS data set to */
/* annotate labels inside bubbles. XSYS and YSYS */
/* specify that X and Y correspond to locations */
/* on the horizontal and vertical axes. The values */
/* of MANUFACT and MODEL from the AUTOS data set */
/* are used for text.The POSITION values cause the */
/* manufacturer name to be placed slightly above */
/* the center of the bubble and the model name to */
/* be placed below it. */
set autos;
xsys='2'; ysys='2';
style='swiss'; size=2.5;
x=price; y=rating;
text=manufact; position='b'; output;
text=model; position='e'; output;
run;
/* Add titles and footnotes. */
title h=5 f=swissb 'Parking Lot Survey';
title2 h=5 f=swissb 'of Selected Automobiles';
title3 ' ';
footnote h=2
'Bubble size represents percentage of '
'vehicles of that model in parking lot';
footnote2 h=2 j=l
'SAS/GRAPH' m=(+0,+.5) '02'x m=(+0,-.5)
' software';
/* Set up axis specifications. The ORDER= option */
/* extends the axes beyond the range of data so that */
/* bubbles are not clipped. The ORIGIN= option is */
/* used to adjust the origin of the axes to make room */
/* for annotation. The LENGTH option is used to */
/* offset the right end of the horizontal axis from */
/* the graph edge, centering the plot. Note that even */
/* though the axes are not actually drawn (because the */
/* NOAXES option is specified later), their attributes */
/* affect the rest of the graph. */
axis1 order=(5 to 25 by 10) origin=( ,18) length=85 pct;
axis2 order=(0 to 10 by 2) origin=(7.5);
/* Use the PROC GPLOT BUBBLE statement to produce the */
/* plot. The NOAXES option causes the axes not to be */
/* drawn, and the HREF and VREF options draw the */
/* 'crosshairs' in the middle of the plot. */
proc gplot data=autos annotate=anno;
bubble rating*price=share/
haxis=axis1 /* Assign AXIS attributes to axes. */
vaxis=axis2
noaxes /* Suppress drawing of axes. */
href=15 /* Ref. line at middle of */
/* horizontal axis */
chref=graycc /* Color of reference line */
vref=5 /* Ref. line at middle of vertical
/* axis */
cvref=graycc /* Color of reference line */
bsize=14 /* Scaling factor for bubble size */
blabel /* Print percentage next to bubble. */
bfont=swiss; /* Font for percentage label */
/* Use the PERCENT5.1 format to display the values of */
/* SHARE as percentages. */
format share percent5.1;
run;
/**********************************************************************/
goptions nodisplay device=ps;
/**********************************************************************/
goptions display device='
/* drivername */
';
proc greplay nofs igout=gseg;
replay _last_;
/**********************************************************************/
proc format;
picture percent
0-100='00.0%' (mult=1000);
run;
/**********************************************************************/