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

SuperBowlLVIIIQBs.png

 

Time for the Super Bowl LVIII quarterback boxplot matchup, kids! More QB stats for Brock Purdy and Patrick Mahomes at NFL.com.

 

* Fun With SAS ODS Graphics: Super Bowl LVIII QB Boxplot Tale of the Tape (Purdy vs. Mahomes)
  Football markers courtesy of Bruno Landowski thenounproject.com/icon/football-243375/;

proc import file='~/QBLVIII.xlsx' dbms=xlsx out=qb replace; * Grab 2023 regular/postseason QB stats (copied-and-pasted from NFL.com); 

%SGANNO;  * Anotate chart with NFL.com potos of Burrow, Stafford using SAS-provided macros;         
data qbpics;
%SGIMAGE (image="/home/ted.conway/Mahomes.png",drawspace="DATAVALUE",xc1="Patrick Mahomes",y1=-18,height=140,heightunit="DATA",anchor="BOTTOM");
%SGIMAGE (image="/home/ted.conway/Purdy.png",drawspace="DATAVALUE",xc1="Brock Purdy",y1=-18,height=140,heightunit="DATA",anchor="BOTTOM");

proc sql; * Only create labels for highest and lowest passing yardage games;
create table qb3 as select qb.*, case when yds=minyds or yds=maxyds then Yds end as Yds2
from qb join (select qb, min(yds) as minYds, max(yds) as maxYds from qb group by 1) as qb2 on qb.qb=qb2.qb;

proc sgplot data=qb3 noautolegend sganno=qbpics noborder nowall;  * Annotated box + scatter plot of passing yardage in each game of 2023 season; 
inset "SUPER BOWL LVIII" / textattrs=(size=14pt weight=bold) position=top;
symbolimage name=football image='/home/ted.conway/football.png'; * Use football image for scatterplot markers;
scatter y=YDS x=QB / datalabel=yds2 datalabelpos=left markerattrs=(symbol=football size=24pt) transparency=0; * Markers with passing yards in each of the 2023 games (pre- and post-season);
vbox YDS / category=QB boxwidth=.25 nofill meanattrs=(color=red symbol=diamondfilled); * Boxplot to show distributions (quartiles + mean);
xaxis display=(noline noticks nolabel) discreteorder=data; 
yaxis display=all label="PASSING YARDS IN EACH 2023 REGULAR SEASON GAME" min=-20 offsetmin=0;
inset "QB" "PASSING" "MATCHUP" / valuealign=center textattrs=(size=12pt weight=bold) position=bottom;
run;

 

SAMPLE DATA

DataSample.jpg

sas-innovate-2024.png

Available on demand!

Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.

 

Register now!

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
  • 525 views
  • 4 likes
  • 1 in conversation