%let gpath='C:\'; proc import datafile='C:\Work\Blogs\Graphically Speaking\2012\Post_May25_2012_Two_Var\Two_Var_Data.xls' dbms=XLS out=Two_Var; run; data two_var2; set two_var end=last; var=cats(var_1, var_2); if last then do; var='++'; var1='+'; var2='+'; label1='Var 1'; label2='Var 2'; output; var='+-'; var1='+'; var2='-'; label1='Var 1'; label2='Var 2'; output; var='-+'; var1='-'; var2='+'; label1='Var 1'; label2='Var 2'; output; var='--'; var1='-'; var2='-'; label1='Var 1'; label2='Var 2'; output; end; else output; run; proc sort data=two_var2 out=two_var3; by var; run; proc template; define statgraph two_var; begingraph; layout lattice / columndatarange=union rows=2 rowweights=(0.9 0.1); layout overlay / xaxisopts=(display=none) yaxisopts=(display=(ticks tickvalues)); barchart x=var y=count / skin=modern stat=mean; endlayout; layout overlay / walldisplay=none xaxisopts=(display=none) yaxisopts=(display=(tickvalues)); scatterplot x=var y=label2 / markercharacter=var2 markercharacterattrs=(size=11 weight=bold); scatterplot x=var y=label1 / markercharacter=var1 markercharacterattrs=(size=11 weight=bold); endlayout; endlayout; endgraph; end; run; ods listing gpath=&gpath; ods graphics / reset width=5in height=3in imagename='Two_Var_92'; proc sgrender data=two_var3 template=two_var; run;