Using the data from your example, the code for the solution I proposed is below. I used an attrmap data set instead of putting the attrmap directly in the template, as it gives you more flexibility and re-use for other templates you might use for rendering the same treatment groups.
data attrmap; retain id "trtgrp"; length linecolor $ 4; input value $ linecolor $; cards; A blue B red ; run;
proc template; define statgraph box; begingraph/ designwidth=9.3in designheight=4.5in border=yes;; entrytitle "X" / textattrs=(size=9); layout lattice / columns=1 rows=1 columnweights=(0.7) ; layout overlay / yaxisopts=(linearopts=(tickvaluesequence=(start=1 end=7 increment=1) viewmin=1 viewmax=7) label='X') xaxisopts=(display=(tickvalues label) label="Treatment Group"); boxplot x=trta y=aval / whiskerpercentile=10 display=(mean median outliers caps fill) capshape=line name='a' outlineattrs=(thickness=2) outlierattrs=(symbol=square /*trianglefilled*/) group=TRTA
groupdisplay=cluster meanattrs=(symbol=asterisk) medianattrs=(thickness=2) whiskerattrs=(thickness=2); endlayout; endlayout; endgraph; end; run; ods html;
proc sgrender data=adpp template=box dattrmap=attrmap; dattrvar TRTA="trtgrp"; run;
... View more