%let gpath='C:\'; %let dpi=200; /*--Butterfly Plot data--*/ data Pop; length AgeGroup $12; do AgeGroup='Pre Teen', 'Teen', 'Young Adult', 'Adult', 'Senior'; Male=round(500*(1+ranuni(2))); Female=round(400*(1+ranuni(2))); output; end; run; /*--Butterfly Plot data--*/ data butterfly; set pop; Male=-male; zero=0; run; /*--Picture format for axes--*/ proc format; picture positive low-<0='0000' 0<-high='0000'; run; /*--Grouped Bar Chart--*/ ods listing style=listing gpath=&gpath image_dpi=&dpi; ods graphics / reset width=5in height=3in imagename='GroupedBarChart'; title 'Polulation by Age Group and Sex'; proc sgplot data=pop; format male female positive.; vbarparm category=agegroup response=male / discreteoffset=-0.2 barwidth=0.4 dataskin=sheen datalabel=male datalabelattrs=(size=10); vbarparm category=agegroup response=female/ discreteoffset= 0.2 barwidth=0.4 dataskin=sheen datalabel=female datalabelattrs=(size=10); yaxis values=(0 to 1000 by 200) display=(nolabel) grid; xaxis display=(nolabel); keylegend / location=inside position=topright across=1; run; /*--Butterfly Plot--*/ ods listing style=listing gpath=&gpath image_dpi=&dpi; ods graphics / reset width=5in height=3in imagename='Butterfly'; title 'Polulation by Age Group and Sex'; proc sgplot data=ButterFly; format male female positive.; hbarparm category=agegroup response=male / dataskin=sheen datalabel=male datalabelattrs=(size=10); hbarparm category=agegroup response=female / dataskin=sheen datalabel=female datalabelattrs=(size=10); xaxis values=(-1000 to 1000 by 200) display=(nolabel) grid; yaxis display=(nolabel); run; /*--Butterfly Plot with center tick values--*/ ods listing style=listing gpath=&gpath image_dpi=&dpi; ods graphics / reset width=5in height=3in imagename='Butterfly2'; title 'Polulation by Age Group and Sex'; proc sgplot data=ButterFly noautolegend; format male female positive.; hbarparm category=agegroup response=male / dataskin=sheen name='m' fillattrs=graphdata1 datalabel=male datalabelattrs=(size=10) transparency=0; hbarparm category=agegroup response=female / dataskin=sheen name='f' fillattrs=graphdata2 datalabel=female datalabelattrs=(size=10) transparency=0; scatter x=zero y=agegroup / markerchar=agegroup markercharattrs=(size=11 weight=bold color=white); keylegend 'm' 'f'; xaxis values=(-1000 to 1000 by 200) display=(nolabel) grid offsetmin=0.05 offsetmax=0.05; yaxis display=(noticks novalues nolabel); run;