A Thanksgiving Day football-themed remix of the "Construction Paper" Thanksgiving Turkey post from 2020. Happy Thanksgiving, all!
* Fun w/SAS ODS Graphics: Are You Ready for Some Thanksgiving Football?;
data turkey; * Need points for 10 football icons that make up turkey's "feathers";
xnbr=0; ynbr=0; txtnbr='15'; * x/y points for player's number;
xnm=0; ynm=-.4; txtnm='MAHOMES'; * x/y points for player's name;
r=1;
do aDeg=-30 to 210 by 24; * aDeg is angle in degrees;
aRad=2*constant("pi")*r*aDeg/360; * aRad is angle in radians;
x=1.15*r*cos(aRad); * Compute x,y coordinates;
y=1.15*r*sin(aRad);
c+1; * Assign 1 of 4 colors (cycle thru them);
color=mod(c-1,4);
output;
end;
proc format; * Assign differently=colored MS-Word football icons to "feathers";
value iconf
0='/home/ted.conway/footballicon_sienna.png' 1='/home/ted.conway/footballicon_red.png'
2='/home/ted.conway/footballicon_orange.png' 3='/home/ted.conway/footballicon_yellow.png';
data images; * Use SAS-provided macros to create annotate dataset to position/size images in image;
%SGANNO; * Headshot of Patrick Mahomes - cropped to circle shape to fit turkey's head;
%SGIMAGE (image="/home/ted.conway/pmahomes3.png",layer="front", drawspace="datavalue",imagescale="fitheight",x1=0,y1=.75,height=.8,heightunit="DATA",anchor="CENTER");
do while(^eof);
set turkey end=eof; * Turkey "feathers" - MS-Word football icons in Thanksgiving colors (sienna red orange yellow);
%SGIMAGE (image=put(color, iconf.),layer="back",rotate=adeg,drawspace="datavalue",imagescale="fitheight",x1=X,y1=Y,height=1,heightunit="DATA",anchor="CENTER");
end;
stop;
* Let's "bake" our turkey!;
ods listing image_dpi=300 gpath='/home/ted.conway/';
ods graphics on / reset antialias width=5in height=5in imagename="Turkey2025" imagefmt=svg noborder;
proc sgplot data=turkey aspect=1 noautolegend noborder nowall sganno=images; * Seasons greetings!;
inset "HAPPY THANKSGIVING!" / textattrs=(size=24pt weight=bold color=black) position=top;
inset "2025" / textattrs=(size=24pt weight=bold color=black) position=bottom; * "Body" (brpwn ellipse);
ellipseparm semiminor=.7 semimajor=.7 / xorigin=0 yorigin=0 slope=0 fill fillattrs=(color=brown); * "Head" (brpwn ellipse);
ellipseparm semiminor=.4 semimajor=.4 / xorigin=0 yorigin=.75 slope=0 fill fillattrs=(color=brown);
text x=xnbr y=ynbr text=txtnbr / textattrs=(size=60pt weight=bold color=red); * Player's uniform #;
text x=xnm y=ynm text=txtnm / textattrs=(size=16pt weight=bold color=white); * Player's name;
xaxis display=none values=(-1.7 1.7) offsetmin=0 offsetmax=0;
yaxis display=none values=(-1.3 2.1) offsetmin=0 offsetmax=0;
run;
IMAGES USED (SOURCE: MS-WORD ICONS, ESPN.COM)
I'm not as good with the ODS graphics art, but I did celebrate my fandom by creating something useful with my 3D printer. And while they didn't play on Thanksgiving this year, it was worth the wait until Sunday to watch the game.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
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.
Ready to level-up your skills? Choose your own adventure.