BookmarkSubscribeRSS Feed
tc
Lapis Lazuli | Level 10 tc
Lapis Lazuli | Level 10

ChicagoBearsWeightsByPosition.png

 

With the NFL preseason wrapping up, here's a SAS ODS Graphics bubble chart comparison of the weights of the Chicago Bears by position. Data is from the Bears' Depth Chart and Roster. Bear Down!

 

* Fun With SAS ODS Graphics: Weights of Chicago Bears Starters
   Data Source: Chicago Bears Depth Chart (as of 8/8/2023) and Roster
   chicagobears.com/team/depth-chart
   chicagobears.com/team/players-roster/;
   
data BearsStarters;                                     /* Read in players' position, name, weight, x/y position location */
infile cards dsd delimiter=',' missover;
input position : $2. player : $25. weight x y;
if substr(position,1,1)^='*';                           /* Skip "comments" in data */
if y>0 then do; positiontop=position; position=''; end; /* Defense? Display position on top, not bottom */
cards;
*==> DEFENSE, POSITION, WEIGHT, X, Y
DE,DeMarcus Walker,280,-2,0.5
DT,Justin Jones,309,-1,0.5
DT,Andrew Billings,311,1,0.5
DE,Yannick Ngakoue,246,2,0.5
LB,T.J. Edwards,242,3,1.5
LB,Tremaine Edmunds,250,0,1.5
LB,Jack Sanborn,234,-3,1.5
CB,Jaylon Johnson,196,-5,2.5
CB,Kyler Gordon,200,5,2.5
S,Eddie Jackson,206,-1,3.5
S,Jaquan Brisker,200,1,3.5
*==> OFFENSE, POSITION, WEIGHT, X, Y
WR,DJ Moore,210,-5,-0.5
LT,Braxton Jones,310,-2,-0.5
LG,Teven Jenkins,321,-1,-0.5
C,Cody Whitehair,316,0,-0.5
RG,Nate Davis,316,1,-0.5
RT,Darnell Wright,335,2,-0.5
TE,Cole Kmet,260,3,-0.5
WR,Darnell Mooney,173,5,-1.5
QB,Justin Fields,228,0,-1.5
RB,Khalil Herbert,212,1,-2.5
FB,Khari Blasingame,233,0,-2.5
WR,Chase Claypool,238,-4,-1.5
*==> SPECIAL TEAMS, POSITION, WEIGHT, X, Y
P,Trenton Gill,219,-5,-4.5
K,Cairo Santos,175,-4,-4.5
LS,Patrick Scales,226,-3,-4.5
H,Trenton Gill,219,-2,-4.5
KR,Velus Jones Jr.,200,-1,-4.5
PR,Velus Jones Jr.,200,0,-4.5
;
%SGANNO;                                                   /* Use SAS ODS Graphics annotate macros to add Bears logo to chart */                                          
data bearslogo;                                            /* Specify size of image and location in terms of x/y values */
%SGIMAGE (image="/home/ted.conway/bears.png",drawspace="DATAVALUE",x1=4.5,y1=-4.5,height=1.5,heightunit="DATA",anchor="CENTER");

ods graphics on / height=10in width=10in noborder;         /* Create chart of offensive/defensive formations and special teams players */
proc sgplot data=bearsstarters aspect=1 noborder nowall noautolegend sganno=bearslogo;
styleattrs backcolor=cx196f0c;                             /* Set background to "grass green" color */
inset "Chicago Bears Starting Players' Weights by Position" "(Source: 8/8 Depth Chart and Roster)" / textattrs=(color=white size=18pt) position=top valuealign=center; /* Display headings */
bubble x=x y=y size=weight / bradiusmax=.325in bradiusmin=.01 proportional nofill datalabel=positiontop datalabelpos=top datalabelattrs=(weight=bold size=8pt color=white) lineattrs=(color=white); /* Display defensive positions above bubbles */
bubble x=x y=y size=weight / bradiusmax=.325in bradiusmin=.01 proportional nofill datalabel=position datalabelpos=bottom datalabelattrs=(weight=bold size=8pt color=white) lineattrs=(color=white); /* Display offensive, special teams positions above bubbles */
bubble x=x y=y size=weight / bradiusmax=.325in bradiusmin=.01 proportional colormodel=(lightblue navy) colorresponse=weight datalabel=weight datalabelpos=center datalabelattrs=(weight=bold size=11pt color=white) lineattrs=(color=white); /* Display weights in bubbles that are sized/shaded by weight */
refline 0 / axis=y label="" labelloc=inside lineattrs=(color=white thickness=1.5pt); /* Draw a white 'line of scrimmage' */
refline 0 / axis=y label="DEFENSE" labelloc=inside labelpos=max lineattrs=(thickness=0) labelattrs=(weight=bold size=8pt color=white); /* Add Defense/Offense/Special Teams labels */ 
refline -.25 / axis=y label="OFFENSE" labelloc=inside labelpos=max lineattrs=(thickness=0) labelattrs=(weight=bold size=8pt color=white); 
refline -4 / axis=y label="SPECIAL TEAMS" labelloc=inside labelpos=min lineattrs=(thickness=0) labelattrs=(weight=bold size=8pt color=white); 
xaxis display=none values=(-5 5) offsetmin=.05 offsetmax=.05; /* Suppress axes, add a little padding space */
yaxis display=none values=(-5 5) offsetmin=.05 offsetmax=.05;
run;

Ready to join fellow brilliant minds for the SAS Hackathon?

Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.

Register today!
How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 0 replies
  • 488 views
  • 2 likes
  • 1 in conversation