I have multiple elements in a lattice layout, but I want them repeated based on a classification variable. Is there any way to do this? I tried just putting them inside a datapanel layout or datalattice layout, but it doesn't work. For example: This code produces a bar char with information on either side. These values are all from one year. What if I had 4 years of values and I wanted to produce the same output 4 times, once for each year based all in the same graphic. Is there a way to do this? data PGA2007; input Rank 2. Player & $15. Age Events Rounds CutsMade Top10 Wins Earnings; retain Constant 1; label CutsMade="Cuts Made" Top10="Top 10s"; format age events wins 3.0; datalines; 1 Tiger Woods 33 16 61 16 12 7 10867052 2 Phil Mickelson 38 22 73 16 7 3 5819988 3 Vijay Singh 45 27 101 25 7 2 4728377 4 Steve Stricker 41 23 80 19 9 1 4663077 5 K.J. Choi 38 25 88 20 7 2 4587859 6 Rory Sabbatini 32 23 80 18 10 1 4550040 7 Jim Furyk 38 24 84 20 8 1 4154046 8 Zach Johnson 32 23 78 18 5 2 3922338 9 Sergio Garcia 29 19 67 16 7 0 3721185 10 Aaron Baddeley 27 23 82 19 7 1 3441119 ; run; proc template; define statgraph BarTableHorz; begingraph; entrytitle "Professional Golf Statistics for 2007"; layout lattice / columns=4 columngutter=2 columnweights=(.06 .06 .82 .06); column2headers; entry halign=right "Age" / textattrs=(size=7pt weight=bold); entry halign=right "Events" / textattrs=(size=7pt weight=bold); entry halign=right "" / textattrs=(size=7pt weight=bold); entry halign=right "Wins" / textattrs=(size=7pt weight=bold); endcolumn2headers; /* columns to left of barchart */ layout overlay / walldisplay=none border=false yaxisopts=(reverse=true type=discrete display=none) xaxisopts=(display=none offsetmin=0.3 offsetmax=0); scatterplot y=player x=constant / markercharacter=age markerattrs=(size=0) ; endlayout; layout overlay / walldisplay=none border=false yaxisopts=(reverse=true type=discrete display=none) xaxisopts=(display=none offsetmin=.3 offsetmax=0); scatterplot y=player x=constant / markercharacter=events markerattrs=(size=0); endlayout; /* barchart with inset */ layout overlay / yaxisopts=(reverse=true display=(tickvalues) tickvalueattrs=(weight=bold)) xaxisopts=(griddisplay=on labelattrs=(weight=bold) linearopts=(tickvalueformat=(extractscale=true)) ); barchart x=player y=Earnings / barlabel=true barlabelformat=dollar12. orient=horizontal outlineattrs=(color=black); endlayout; layout overlay / walldisplay=none border=false yaxisopts=(reverse=true type=discrete display=none) xaxisopts=(display=none offsetmin=.3 offsetmax=0); scatterplot y=player x=constant / markercharacter=wins markerattrs=(size=0); endlayout; endlayout; endgraph; end; run; ods listing close; ods html image_dpi=100 file='BarTableHorz.html' path='.'; ods graphics / reset noborder width=700px height=400px imagename='BarTableHorz' imagefmt=gif noscale; proc sgrender data=PGA2007 template=BarTableHorz; run; ods html close; ods listing; Thanks for any help. -Jesse
... View more