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

2026OscarsSmall.png

 

Oscars are tonight, so here's a SAS ODS Graphics annotated text + needle chart of the implied probability + odds of winning for the Best Picture nominees (Spoiler Alert: things look good for One Battle After Another!). 

 

Didn't get to watch all the nominees? No problem! Clickable images in GitHub-hosted version of SAS ODS Graphics chart will take you to the 2026 Academy Awards Best Picture nominee trailers on YouTube!

 

* Fun With SAS ODS Graphics: What Are the Odds of Winning for the 2026 Best Picture Oscar Nominees?;

proc import datafile='/home/ted.conway/nominees/nominees2026.xlsx' dbms=xlsx out=nominees replace; * Import nominee info and odds from Excel;
                                     * Create annotation dataset that using imported nominee info;
%SGANNO;                             * Images all the same height, but displayed at height that matches their probability of winning; 
data nominees2026;                   * Add annotation info about nominated films; 
set nominees(obs=10);                * Only first 10 rows have movie info;
retain function 'image' border "true" linecolor "white" drawspace "datavalue" imagescale "fitheight" height 1 heightunit "DATA" anchor "BOTTOM";
image=cats('/home/ted.conway/nominees/',PosterImage,'.jpg'); * Annotation info that's constant for all films;
xc1=BestPictureNominee;              * x-axis value for movie names (categorical);
y1=Probability;                      * y-axis value for bottom of image (probability);
txtProbOdds=cats(put(probability,percent6.2))||' '||cats('(',odds,')'); * Dispaly probability + odds above image;
ProbabilityPlus1=Probability+1.01;   * y-axis value for probability (display probability + odds above image, which has height of 1);
                                     * Generate chart of films/probability of winning (Text+Needle plots and annotation);
ods html5 path='/home/ted.conway/nominees' body='oscars2026.html' options(bitmap_mode="inline"); * Create clickable web page graph;
ods graphics / reset imagemap=on height=6in width=24in imagefmt=png noborder imagename='Oscars2026'; * Use SVG for sharper static image, PNG format for clickable movie images that play YouTube trailers;
proc sgplot data=nominees2026 sganno=nominees2026 nowall noborder noautolegend ;
styleattrs backcolor=black;          * Lights out - they're movies!;
inset "2026 Best Picture Nominees: Implied Probability & Odds of Winning (Click Image to View YouTube Trailer)" 
      / textattrs=(color=white size=17pt weight=bold) position=topleft;
text x=BestPictureNominee y=probabilityplus1 text=txtProbOdds / strip contributeoffsets=none textattrs=(size=12pt color=white weight=bold) position=top; * Display probabilities/odds above images;
needle x=BestPictureNominee y=probability / lineattrs=(thickness=4pt color=white); * Show a drop line from image to baseline ("lollipop" chart);
xaxis display=(nolabel noticks noline) valueattrs=(color=white weight=bold size=12pt) offsetmin=.06 offsetmax=.06; * X-axis displays movie names in descending order of probability;
yaxis display=(nolabel noticks noline) valueattrs=(color=white weight=bold size=12pt) values=(0 .25 .50 .75 1.00 2) valuesdisplay=('0' '25%' '50%' '75%' '100%' ' ') offsetmin=.01 offsetmax=.05; * Y-axis displays probablility of winning;
refline 0 .25 .5 .75 1 / axis=y lineattrs=(color=grey) label=""; * Display reference lines for at 0%/25%/50%/75%/100%; 
run;
ods html5 close;

 

DETAIL (SVG)

2026OscarsLarge.png

 

EXCEL INPUT

BestPicture2026Info.png

Catch up on SAS Innovate 2026

Dive into keynotes, announcements and breakthroughs on demand.

Explore 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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 0 replies
  • 687 views
  • 5 likes
  • 1 in conversation