%let gpath='C:\'; data TallBar; input X $ Y; length highcap $12; high=y; low=0; if y > 20 then do; high=20; highcap='FILLEDARROW'; end; datalines; A 10 B 15 C 12 D 17 E 215 F 220 ; run; ods html; proc print data=TallBar noobs; var x y low high highcap; run; ods html close; /*--Basic Bar Chart--*/ proc template; define statgraph Bar_Chart; begingraph; entrytitle 'Bar Chart'; layout overlay / xaxisopts=(display=(ticks tickvalues)) yaxisopts=(display=(ticks tickvalues) griddisplay=on); barchart x=x y=y; endlayout; endgraph; end; run; ods html close; ods listing gpath=&gpath image_dpi=150; ods graphics / reset width=2in height=2in imagename='Bar_Chart'; proc sgrender data=TallBar template=Bar_Chart; run; /*--Log Y-Axis--*/ proc template; define statgraph Log_Axis; begingraph; entrytitle 'Log Y-Axis'; layout overlay / xaxisopts=(display=(ticks tickvalues)) yaxisopts=(type=log logopts=(base=2 tickintervalstyle=logexpand) display=(ticks tickvalues) griddisplay=on); barchart x=x y=y / baselineintercept=0.5; endlayout; endgraph; end; run; ods graphics / reset width=2in height=2in imagename='Log_Axis'; proc sgrender data=TallBar template=Log_Axis; run; /*--Full Panel Break--*/ proc template; define statgraph Panel_Break; begingraph; entrytitle 'Panel Break'; layout lattice / rows=2 columndatarange=union rowweights=(0.35 0.65) rowgutter=2; columnaxes; columnaxis / display=(ticks tickvalues) tickvalueattrs=(size=7); endcolumnaxes; layout overlay / yaxisopts=(griddisplay=on display=(ticks tickvalues) tickvalueattrs=(size=7) offsetmin=0 linearopts=(viewmin=205 tickvaluelist=(210 215 220))); barchart x=x y=y; endlayout; layout overlay / yaxisopts=(griddisplay=on display=(ticks tickvalues) tickvalueattrs=(size=7) offsetmin=0 linearopts=(viewmax=25 tickvaluelist=(0 5 10 15 20 25))); barchart x=x y=y; endlayout; endlayout; endgraph; end; run; ods graphics / reset width=2in height=3in imagename='Panel_Break'; proc sgrender data=TallBar template=Panel_Break; run; /*--Panel Break with Arrows--*/ proc template; define statgraph High_Low; begingraph; entrytitle 'Panel Break with Arrows'; layout lattice / rows=2 columndatarange=union rowweights=(0.5 0.5) rowgutter=2; columnaxes; columnaxis / tickvalueattrs=(size=7) display=(ticks tickvalues); endcolumnaxes; layout overlay / yaxisopts=(display=(ticks tickvalues) offsetmin=0 griddisplay=on tickvalueattrs=(size=7) ); barchart x=x y=y / barwidth=0.8; endlayout; layout overlay / yaxisopts=(display=(ticks tickvalues) offsetmin=0 griddisplay=on tickvalueattrs=(size=7)) ; highlowplot x=x low=low high=high / type=bar highcap=highcap barwidth=0.8; endlayout; endlayout; endgraph; end; run; ods graphics / reset width=2in height=3in imagename='High_Low'; proc sgrender data=TallBar template=High_Low; run;