Lapis Lazuli | Level 10

## Fun With SAS ODS Graphics: 2024 Grammy Nominees' Chances of Winning

Grammy Awards are tonight, so here's a short SAS ODS Graphics program to chart the nominees' chances of winning (input data from Yahoo, full output for all 37 categories on GitHub).

``````* Fun With SAS ODS Graphics: 2024 Grammy Nominee Odds
Data soure: yahoo.com/entertainment/2024-grammy-predictions-official-odds-150050388.html
Odds-to-probability calc from en.wikipedia.org/wiki/Mathematics_of_bookmaking;

data nominees;                                                          * Read in data;
length probability 8. category nominee odds : \$ 255.; retain minx .005 maxX .295 category;
infile "/home/ted.conway/GrammyOdds.txt" lrecl=255 truncover;
input;
if ^index(_infile_,'—') then do; seq=0; category=_infile_; delete; end; * Category Header?;
seq+1;                                                                  * Process nominee odds;
seqx=put(seq,z2.);                                                      * Maintain nominee sequence order;
nominee=scan(_infile_,1,'—');                                           * Grab nominee and/or recording;
odds=scan(_infile_,2,'—');                                              * Grab fractional odds;
probability=scan(odds,2,'/')/(scan(odds,1,'/')+scan(odds,2,'/'));       * Convert to probability (0-1);
output;

ods graphics / width=16in height=9in noborder outputfmt=svg;
proc sgpanel data=nominees noautolegend des="2024 Grammy Awards";       * Draw charts for 9 categories in a 3x3 grid on each page (37 categories);
hbarparm category=seqx response=probability / nooutline fillattrs=(color=cXA8D8FF); * Bar chart with light blue bars;
text x=minX y=seqx text=nominee / position=right strip contributeoffsets=none textattrs=(size=9pt color=black) splitchar='|' splitpolicy=splitalways; * Text plot of nominee and/or recording (left-aligned over bars);
text x=maxX y=seqx text=odds / position=left strip contributeoffsets=none textattrs=(size=9pt color=black); * Text plot showing fractional odds (to the right of nominees);
rowaxis display=(nolabel novalues noticks noline);                      * Suppress most axis info, but show probabilities;
colaxis display=(nolabel noticks) values=(0 .1 .2 .3) valuesdisplay=('0%' '10%' '20%' '30%') grid valueattrs=(size=8pt);
run;``````

DETAIL VIEW

CORRESPONDING DATA SNIPPET

``````ALBUM OF THE YEAR
Taylor Swift, "Midnights" — 5/1
Boygenius, "The Record" — 5/1
SZA, "SOS" — 11/2
Jon Batiste, "World Music Radio" — 7/1
Olivia Rodrigo, "Guts" — 17/2
Lana Del Rey, "Did You Know That There's a Tunnel Under Ocean Blvd" — 17/2
Miley Cyrus, "Endless Summer Vacation" — 19/2
Janelle Monae, "The Age of Pleasure" — 10/1
...``````

Discussion stats
• 0 replies
• 428 views
• 7 likes
• 1 in conversation