proc template; define statgraph sgplot; dynamic _NEGATIVE_; dynamic _ticklist_; begingraph / collation=binary dataColors=( CX0000FF CXFFC0CB ); layout lattice / columnweights=preferred rowweights=preferred columndatarange=union rowdatarange=union columns=5; Layout Overlay / yaxisopts=( reverse=true display=none type=discrete ) walldisplay=none yaxisopts=(display=none griddisplay=off displaySecondary=none) y2axisopts=(display=none griddisplay=off displaySecondary=none); AxisTable Value=Name Y=Name / labelPosition=min Display=(Label); endlayout; Layout Overlay / yaxisopts=( reverse=true display=none type=discrete ) walldisplay=none yaxisopts=(display=none griddisplay=off displaySecondary=none) y2axisopts=(display=none griddisplay=off displaySecondary=none); AxisTable Value=Age Y=Name / labelPosition=min Display=(Label); endlayout; layout overlay / walldisplay=(fill) yaxisopts=( reverse=true display=none type=discrete ) x2axisopts=( display=( tickvalues line ) type=linear griddisplay=on ) y2axisopts=(type=Discrete reverse=true discreteOpts=(tickValueList=_ticklist_ tickValueListPolicy=Union)); BarChartParm X=Name Y=Age / primary=true xaxis=x2 orient=horizontal Group=Sex Display=( Fill ) barwidth=0.4 LegendLabel="Age" NAME="HBARPARM"; endlayout; Layout Overlay / yaxisopts=( reverse=true display=none type=discrete ) walldisplay=none yaxisopts=(display=none griddisplay=off displaySecondary=none) y2axisopts=(display=none griddisplay=off displaySecondary=none); AxisTable Value=Height Y=Name / labelPosition=min Display=(Label); endlayout; Layout Overlay / yaxisopts=( reverse=true display=none type=discrete ) walldisplay=none yaxisopts=(display=none griddisplay=off displaySecondary=none) y2axisopts=(display=none griddisplay=off displaySecondary=none); AxisTable Value=Weight Y=Name / labelPosition=min Display=(Label); endlayout; endlayout; endgraph; end; run;