data have; input subjid $ trtan base aval; cards; A1 1 12 14 A2 1 8 10 A3 1 12 9 B1 2 11 11 B2 2 10 13 B3 2 14 10 ; run; data have_new; length subjid $200 trtan base_new aval_new 8 base aval 8; length highcap lowcap $200; set have; if base>aval then do; highcap='NONE'; lowcap='FILLEDARROW'; base_new=aval; aval_new=base; end; else do; highcap='FILLEDARROW'; lowcap='NONE'; base_new=base; aval_new=aval; end; run; proc template; define statgraph highlowbar; begingraph; layout overlay / xaxisopts=(display=(line ticks tickvalues) griddisplay=on linearopts=(viewmin=0 viewmax=15)) yaxisopts=(griddisplay=on display=(line ticks tickvalues)); highlowplot y=SUBJID high=AVAL_NEW low=BASE_NEW / group=drug outlineattrs=(pattern=solid) type=bar barwidth=0.4 highcap=HIGHCAP lowcap=LOWCAP; endlayout; endgraph; end; ods graphics on / reset outputfmt=png imagename='highlowbar'; proc sgrender data=have_new template=highlowbar; run;