/* set GOPTIONS NODISPLAY if you don't want to see individual */
/* graphs while they are being created */
goptions reset=global htext=1.5 ftext=swissl nodisplay;
proc gchart data=sasuser.houses gout=mycat;
label price='Average Asking Price';
label baths='Average Number of Bathrooms';
axis1 label=none;
axis2 label=('Average Square Footage');
axis3 label=(angle=90 rotate=0) order=0 to 100000 by 20000;
axis4 label=(angle=90 rotate=0);
/* chart for upper left quadrant */
pie style / type=freq noheading slice=inside
value=outside percent=outside;
run;
/* chart for upper right quadrant */
hbar style / type=mean sumvar=sqfeet maxis=axis1
raxis=axis2 patternid=midpoint;
run;
/* chart for lower left quadrant */
vbar bedrooms / group=style discrete nozeros type=mean
sumvar=baths raxis=axis4 gaxis=axis1
patternid=group;
run;
/* chart for lower right quadrant */
vbar style / type=mean sumvar=price mean maxis=axis1
raxis=axis3 patternid=midpoint;
run;
quit;
/* generate title and footnote with PROC GSLIDE */
proc gslide gout=mycat;
title1 height=8 pct 'Housing Summary';
footnote1 height=4 pct 'Based on Style of Homes';
run;
quit;
/* set GOPTIONS DISPLAY before invoking PROC GREPLAY */
goptions display;
/* invoke GREPLAY and specify the input, output and */
/* template catalogs */
proc greplay nofs igout=mycat gout=mycat tc=mytemps;
/* define template panels */
tdef t2x2
/* upper left panel */
1 / llx=6 ulx=6 urx=47 lrx=47
lly=48 uly=89 ury=89 lry=48
/* upper right panel */
2 / llx=53 ulx=53 urx=94 lrx=94
lly=48 uly=89 ury=89 lry=48
/* lower left panel */
3 / llx=6 ulx=6 urx=47 lrx=47
lly=7 uly=48 ury=48 lry=7
/* lower right panel */
4 / llx=53 ulx=53 urx=94 lrx=94
lly=7 uly=48 ury=48 lry=7
/* full display panel for PROC GSLIDE output */
5 / llx=0 ulx=0 urx=100 lrx=100
lly=0 uly=100 ury=100 lry=0 ;
/* replay graphs into template panels */
template t2x2;
tplay 1:1 2:2 3:3 4:4 5:5;
run;
quit;