%let gpath='C:\'; %let dpi=100; /*--Generate Revenue Data--*/ data revenues; format Actual Target dollar8.0; do Product='Chairs', 'Bed', 'Tables', 'Desks', 'Sofa'; Actual=10000*(1+0.3*ranuni(2)); Target=actual*(1+0.2*(ranuni(2)-0.5)); Group=ifc(actual > target, 'Actual (Over performing)', 'Actual (Under performing)'); output; end; run; ods listing gpath=&gpath image_dpi=&dpi; /*--SAS 9.3 SG Horizontal Target Bar Chart with Attr Map--*/ ods graphics / reset width=5in height=3in imagename='Target_SG'; title 'Actual and Target Revenues by Product'; proc sgplot data=revenues noautolegend dattrmap=attrmap; hbarparm category=product response=actual / dataskin=gloss name='a'; scatter y=product x=target / markerattrs=(symbol=triangleDownFilled size=10) name='t' legendlabel='Target' discreteoffset=-0.35 transparency=0.4; xaxis offsetmin=0 label='Sales (Sum)' grid; yaxis display=(nolabel); keylegend 'a' 't' / title=''; run; /*--SAS 9.3 SG Horizontal Target Bar Chart with Group--*/ ods graphics / reset width=5in height=3in imagename='TargetGroup_SG'; title 'Actual and Target Revenues by Product'; proc sgplot data=revenues noautolegend dattrmap=attrmap; hbarparm category=product response=actual / dataskin=gloss group=group name='a'; scatter y=product x=target / markerattrs=(symbol=triangleDownFilled size=10) name='t' legendlabel='Target' discreteoffset=-0.35 transparency=0.4; xaxis offsetmin=0 label='Sales (Sum)' grid; yaxis display=(nolabel); keylegend 'a' 't' / title=''; run; /*--Define Discrete Attr Map Data Set--*/ data attrmap; length value $25; ID='A'; value='Actual (Over performing)'; fillcolor='darkgreen'; output; ID='A'; value='Actual (Under performing)'; fillcolor='darkred'; output; run; proc print;run; /*--SAS 9.3 SG Grouped Horizontal Target Bar Chart with Attr Map--*/ ods graphics / reset width=5in height=3in imagename='TargetAttrmap_SG'; title 'Actual and Target Revenues by Product'; proc sgplot data=revenues noautolegend dattrmap=attrmap; hbarparm category=product response=actual / dataskin=gloss group=group attrid=A name='a' transparency=0.3; scatter y=product x=target / markerattrs=(symbol=triangleDownFilled size=10) name='t' legendlabel='Target' discreteoffset=-0.35 transparency=0.4; xaxis offsetmin=0 label='Sales (Sum)'; yaxis display=(nolabel); keylegend 'a' 't'/ title=''; run;