Hello All, 9.4 TS1M4 I am trying to control the colors and fill patterns in a waterfall plot (vbar) using a combination of proc template (borrowed from SAS Help Docs) and the data attribute maps so that all groups are consistent over all plots. However, when I produce the plots, the colors seem to line up, but the fill patterns don't. Here is an excerpt from my code: proc template;
define style Styles.MyJournal2;
parent = styles.journal2;
style GraphColors from GraphColors /
'gdata'=cxffffff
'gdata1'=cxffffff
'gdata2'=cxc0c0c0
'gdata3'=cxe0e0e0
'gdata4'=cxa0a0a0
'gdata5'=cx909090
'gdata6'=cxffffff
'gdata7'=cxc0c0c0
'gdata8'=cxe0e0e0
'gdata9'=cxa0a0a0;
style GraphHistogram from GraphComponent /
displayopts = "outline";
style GraphEllipse from GraphComponent /
displayopts = "outline";
style GraphBand from GraphComponent /
displayopts = "outline";
style GraphBox from GraphComponent /
displayopts = "caps median mean outliers"
connect = "mean"
capstyle = "serif";
style GraphBar from GraphComponent /
displayopts = "outline fillpattern";
style GraphData1 from GraphData1 /
contrastcolor=&_contrast.
fillpattern = "L1";
style GraphData2 from GraphData2 /
contrastcolor=&_contrast.
fillpattern = "R1";
style GraphData3 from GraphData3 /
contrastcolor=&_contrast.
fillpattern = "X1";
style GraphData4 from GraphData4 /
contrastcolor=&_contrast.
fillpattern = "L2";
style GraphData5 from GraphData5 /
contrastcolor=&_contrast.
fillpattern = "R2";
style GraphData6 from GraphData6 /
contrastcolor=&_contrast.
fillpattern = "X2";
style GraphData7 from GraphData7 /
contrastcolor=&_contrast.
fillpattern = "L3";
style GraphData8 from GraphData8 /
contrastcolor=&_contrast.
fillpattern = "R3";
style GraphData9 from GraphData9 /
contrastcolor=&_contrast.
fillpattern = "X3";
end;
define style Styles.MyJournal3;
parent = styles.MyJournal2;
style GraphBar from GraphComponent /
displayopts = "fill outline fillpattern";
style GraphColors from GraphColors /
'gdata'=cxffffff
'gdata1'=cx308020
'gdata2'=cx308020
'gdata3'=cx308020
'gdata4'=cx2050ff
'gdata5'=cx2050ff
'gdata6'=cx2050ff
'gdata7'=cx402080
'gdata8'=cx402080
'gdata9'=cx402080;
end;
run;
data brightattrmap;
length id $50 show $20 value $100 linecolor $50 fillcolor $50 fillstyle $50 markercolor $50;
infile datalines dsd dlm="|";
input ID $ show $ value $ linecolor $ fillcolor $ fillstyle $ markercolor $;
datalines;
cohort|ATTRMAP|Part B (Subcutaneous) 300 mg|||GraphData1|
cohort|ATTRMAP|Part B (IV, 2 hr infusion) 300 mg|||GraphData2|
cohort|ATTRMAP|Part B (IV Bolus) 300 mg|||GraphData3|
cohort|ATTRMAP|Part B (Subcutaneous) 600 mg|||GraphData4|
cohort|ATTRMAP|Part B (IV, 2 hr infusion) 600 mg|||GraphData5|
cohort|ATTRMAP|Part B (IV Bolus) 600 mg|||GraphData6|
cohort|ATTRMAP|Part B (Subcutaneous) 900 mg|||GraphData7|
cohort|ATTRMAP|Part B (IV, 2 hr infusion) 900 mg|||GraphData8|
cohort|ATTRMAP|Part B (IV Bolus) 900 mg|||GraphData9|
;
run;
proc sgplot data=&ds. dattrmap=brightattrmap;
vbar patid / group=cohort response=cfbpct categoryorder=respdesc groupdisplay=cluster attrid=cohort name="vbar";
refline -50 / axis=y lineattrs=(color=red thickness=3);
xaxis labelattrs=(family=arial size=11 weight=bold) valueattrs=(family=arial size=11 weight=bold);
yaxis values=(20 to -100 by -20) labelattrs=(family=arial size=11 weight=bold) valueattrs=(family=arial size=11 weight=bold);
keylegend "vbar"/ noborder title="Cohort" titleattrs=(family=arial size=11 weight=bold) valueattrs=(family=arial size=11 weight=bold);
run; Here is the legend from 2 of the plots with different groupings. Notice that the 300 mg groups are green, 600 mg blue, 900 mg purple as defined in the dattrmap, but the patterns seem to be random. You can see in the template that there are no "SOLID" or empty patterns but a few showed up with no pattern? Anyway, I am looking for help getting this worked out or if you have an alternate way of doing this, I am open to suggestions! Thanks everyone!
... View more