/**********************************************************************/
libname sampfile '
/* your sas.data.library */
';
data _null_;
set sampfile.state end=end;
by state;
if first.state then
do;
count+1;
/* create variables for the file name and title */
call symput('ST_'||left(put(count,5.)),state);
call symput('LN_'||left(put(count,5.)),
trim(stnamel(state)));
end;
/* create a variable that contains the number of states */
if end then call symput('count',put(count,5.));
run;
goptions dev=cgm /* device driver for CGM */
gsfname=grafout /* file reference to output file */
gsfmode=replace /* replace file if it exists */
gsflen=80; /* set record length to 80 */
symbol1 value=none interpol=join color=black;
%macro outfile;
%do i=1 %to &count;
/* create a file reference */
filename grafout "&&ST_&I...CGM";
proc gplot data=sampfile.state;
plot ave_tsp*month;
/* subset the data to the value of ST_n */
where state="&&ST_&I";
title1 height=1 "Average TSP for &&LN_&I";
run;
quit;
%end;
%mend;
%outfile
/**********************************************************************/
filename grafout "userid.&&ST_&I...CGM" disp=new
space=(trk,(5,1)) recfm=vb;
/**********************************************************************/
libname sampfile '
/* your sas.data.library */
';
data _null_;
set sampfile.state end=end;
by state;
if first.state then
do;
count+1;
call symput('ST_'||left(put(count,5.)),state);
end;
if end then call symput('count',put(count,5.));
run;
options nobyline;
goptions dev=cgm nodisplay
cpattern=black;
/* delete all graphs in the catalog */
proc greplay igout=graphs nofs;
delete _all_;
run;
quit;
/* create the graphs and store them in a catalog */
proc gchart data=sampfile.state gout=graphs;
by state;
vbar month / sumvar=ave_tsp discrete;
title1 height=1 "Average TSP for #byval(state)";
run;
quit;
%macro outfile;
%do i=1 %to &count;
/* create a file reference to the output file */
filename grfout&i "&&ST_&i...CGM";
/* name the file as the destination for the graphics */
/* stream */
goptions gsfname=grfout&i;
/* replay a graph in the catalog to the output file */
replay &i;
%end;
%mend;
goptions
/* replace file if it exists */
gsfmode=replace
/* set record length to 80 */
gsflen=80;
proc greplay igout=graphs nofs;
%outfile
quit;
/**********************************************************************/