Documentation Example 7 for Template Modification
/****************************************************************/
/* S A S S A M P L E L I B R A R Y */
/* */
/* NAME: TEMPLT */
/* TITLE: Documentation Example 7 for Template Modification */
/* PRODUCT: STAT */
/* SYSTEM: ALL */
/* KEYS: graphics, ods */
/* PROCS: */
/* DATA: */
/* */
/* SUPPORT: saswfk UPDATE: July 25, 2011 */
/* REF: ods graphics */
/* MISC: */
/* NOTES: This sample provides the DATA step and PROC code */
/* from the chapter "ODS Graphics Template Modification." It */
/* does not provide most of the ODS statements and style */
/* changes that are in the chapter. Rather, this sample */
/* provides code that can be run in one large batch to make */
/* all of the graphs in the chapter. If destinations were */
/* repeatedly opened and closed, as in the chapter, then */
/* output would be lost and rewritten. Note that you should */
/* not specify destination style changes without first */
/* closing a destination. Changing the style of the output */
/* without first closing the destination will not work */
/* as you might expect. Do not do the following: */
/* */
/* ODS HTML STYLE=STATISTICAL; */
/* . . . code . . . */
/* ODS HTML STYLE=DEFAULT; */
/* . . . code . . . */
/* ODS HTML STYLE=ANALYSIS; */
/* . . . code . . . */
/* */
/* Instead, do the following: */
/* */
/* ODS HTML STYLE=STATISTICAL; */
/* . . . code . . . */
/* ODS HTML CLOSE; */
/* ODS HTML STYLE=DEFAULT; */
/* . . . code . . . */
/* ODS HTML CLOSE; */
/* ODS HTML STYLE=ANALYSIS; */
/* . . . code . . . */
/* ODS HTML CLOSE; */
/* */
/* Note that several steps are commented out in this sample, */
/* because they create large volumes of output. To run those */
/* steps, remove the comments. */
/****************************************************************/
data x;
input x y;
label x = 'Normal(0, 4)' y = 'Normal(0, 1)';
datalines;
-4 0
4 0
0 -2
0 2
;
data y(drop=i);
do i = 1 to 2500;
r1 = normal( 104 );
r2 = normal( 104 ) * 2;
output;
end;
run;
data all;
merge x y;
run;
proc template;
define statgraph Plot;
begingraph;
entrytitle 'Statement Order and the PRIMARY= Option';
layout overlayequated / equatetype=fit;
ellipseparm semimajor=eval(sqrt(4)) semiminor=1
slope=0 xorigin=0 yorigin=0 /
outlineattrs=GraphData2(pattern=solid thickness=5);
ellipseparm semimajor=eval(2 * sqrt(4)) semiminor=2
slope=0 xorigin=0 yorigin=0 /
outlineattrs=GraphData5(pattern=solid thickness=5);
vectorplot y=y x=x xorigin=0 yorigin=0 /
arrowheads=false lineattrs=GraphFit(thickness=5);
scatterplot y=r1 x=r2 /
markerattrs=(symbol=circlefilled size=3);
referenceline x=0 / lineattrs=(thickness=3);
referenceline y=0 / lineattrs=(thickness=3);
endlayout;
endgraph;
end;
run;
*
ods listing style=listing;
proc sgrender data=all template=plot;
run;
proc template;
define statgraph Plot;
begingraph;
entrytitle 'Statement Order and the PRIMARY= Option';
layout overlayequated / equatetype=fit;
referenceline x=0 / lineattrs=(thickness=3);
referenceline y=0 / lineattrs=(thickness=3);
scatterplot y=r1 x=r2 /
markerattrs=(symbol=circlefilled size=3);
vectorplot y=y x=x xorigin=0 yorigin=0 /
arrowheads=false lineattrs=GraphFit(thickness=5);
ellipseparm semimajor=eval(sqrt(4)) semiminor=1
slope=0 xorigin=0 yorigin=0 /
outlineattrs=GraphData2(pattern=solid thickness=5);
ellipseparm semimajor=eval(2 * sqrt(4)) semiminor=2
slope=0 xorigin=0 yorigin=0 /
outlineattrs=GraphData5(pattern=solid thickness=5);
endlayout;
endgraph;
end;
run;
*
ods listing style=listing;
proc sgrender data=all template=plot;
run;
proc template;
define statgraph Plot;
begingraph;
entrytitle 'Statement Order and the PRIMARY= Option';
layout overlayequated / equatetype=fit;
referenceline x=0;
referenceline y=0;
scatterplot y=r1 x=r2 / markerattrs=(symbol=circlefilled size=3);
vectorplot y=y x=x xorigin=0 yorigin=0 / primary=true
arrowheads=false lineattrs=GraphFit;
ellipseparm semimajor=eval(sqrt(4)) semiminor=1
slope=0 xorigin=0 yorigin=0 /
outlineattrs=GraphData2(pattern=solid);
ellipseparm semimajor=eval(2 * sqrt(4)) semiminor=2
slope=0 xorigin=0 yorigin=0 /
outlineattrs=GraphData5(pattern=solid);
endlayout;
endgraph;
end;
run;
*
ods listing style=listing;
proc sgrender data=all template=plot;
run;