<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>tc Tracker</title>
    <link>https://communities.sas.com/kntur85557/tracker</link>
    <description>tc Tracker</description>
    <pubDate>Tue, 21 Apr 2026 13:46:29 GMT</pubDate>
    <dc:date>2026-04-21T13:46:29Z</dc:date>
    <item>
      <title>Fun With SAS ODS Graphics: Easter Egg Cookie (Polygon + Vector + Scatter + Spline Plots)</title>
      <link>https://communities.sas.com/t5/Graphics-Programming/Fun-With-SAS-ODS-Graphics-Easter-Egg-Cookie-Polygon-Vector/m-p/985963#M25879</link>
      <description>&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="OdsEasterEggCookie.png" style="width: 992px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/114109iB2ADD93CC4C68431/image-size/large?v=v2&amp;amp;px=999" role="button" title="OdsEasterEggCookie.png" alt="OdsEasterEggCookie.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Sunday is Easter, so here's a SAS ODS Graphics take on a &lt;A href="https://www.chicagofoodmagazine.com/news/easter-2025" target="_self"&gt;delicious-looking Easter egg cookie&lt;/A&gt;. Happy Easter, all! &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;* Fun With SAS ODS Graphics: Easter Egg Cookie (Polygon + Vector + Scatter + Spline Plots)
  Inspired by delicious-looking cookie pictured at chicagofoodmagazine.com/news/easter-2025;

data points;                                                         * Create points for Easter Egg Cookie made from an ellipse and a circle;
poly=1;                                                              * One polygon of points;
do x=-.75, -.75 to .75 by .01, .75;                                  * Top is a vertical half-ellipse (width=.75, height=1);
  y=sqrt(1-x**2/.75**2);
  if y^=. then output;                                               * Polygons don't like missing values, kids!;
end;
do x=.75, .75 to -.75 by -.01, -.75;                                 * Bottom is a semi-circle (r=.75, generate points right to left for polygon);
  y=-sqrt(.75**2-x**2);
  if y^=. then output;                                               * Polygons don't like missing values, kids!;
end;
x=.; y=.;                                                            * Done with polygons; 
do vy=.15, .45, .75;                                                 * Draw 3 'frosting' lines using vectors;
  vx1=-.75*sqrt(1-vy**2)+.075;
  vx2=-vx1;
  vcolor=(vy=.75);                                                   * Make top line yellow (1), others white (0);
  if vx1^=. and vx2^=. then output;
end;
vx1=.; vx2=.; vy=.;                                                  * Done with vectors;

dots=5;                                                              * Scatter plot of 16 frosting dots group in 2 groups of 2 lines of staggeed points (1st line has 5 points);
scolor=0;                                                            * Bottom group of dots will be white;
do wy=.15, .45;                                                      * Calc y value for each group of lines;
  l=-.75*sqrt(1-(wy+.1)**2)+.15;                                     * Calc left starting point (x);                                     
  do i=0 to dots-1;                                                  * Print each row of dots (four lines of 5, 4, 4, 3 dots in each);
    sx=l+i*abs(l)*2/(dots-1); sy=wy+.1; output;                      * Calc x value of point for bottom line; 
    if i&amp;lt;=(dots-2) then do;                                          * Stagger x values for top line of each group and recalc y value; 
      sx=l+i*abs(l)*2/(dots-1)+.5*abs(l)*2/(dots-1); sy=wy+.2; output; end;
  end;
  dots=dots-1;                                                       * Top group of dots will contain one less dot than bottom group; 
  scolor=1;                                                          * Top group of dots will be yellow;
end;
sx=.; sy=.;                                                          * Done with frosting scatter plot points;

do s2y=.01 to -.72 by -.65/25;                                       * Generate x/y points for candy sprinkles covering bottom semi-circle of cookie; 
  xl=-sqrt(.75**2-s2y**2)+.025;                                      * Compute how much space we have to work with for each line;
  xr=-xl;
  n=floor(abs(xl-xr)/(.65/25));                                      * "Nudge" lines over to right so each row is centered;
  nudge=(abs(xl-xr)-n*(.65/25))/2;
  do s2x=xl+nudge to xr by .65/25;                                   * Fill each row with sprinkles;
    s2color=rand("Integer", 0, 4);                                   * Assign colors (0-4 = white red yellow blue green);
    if s2x^=. then output;
  end;
end;  
                                                                     * Hard work is done, let's 'bake' a cookie (Polygon/Vector/Scatter/Spline plots);
ods graphics / reset antialias border=off height=5in width=5in imagefmt=svg;
proc sgplot data=points aspect=1 noborder noautolegend nowall;       * Generate Easter Egg - polygon plot of half-ellipse + semi-circle points, spline plot border, text plot message;
styleattrs backcolor=cxDDE4F4;                                       * Pastel background;
polygon x=x y=y id=poly / nooutline fill nooutline fillattrs=(color=cxF2DBDD transparency=0); * Eather Egg Cookie;           
vector x=vx2 y=vy / xorigin=vx1 yorigin=vy noarrowheads lineattrs=(color=white thickness=6pt) colormodel=(white yellow) colorresponse=vcolor; * Frosting lines;
scatter x=sx y=sy / markerattrs=(symbol=circlefilled color=white size=16pt) colormodel=(white yellow) colorresponse=scolor; * Frosting dots;
scatter x=s2x y=s2y / markerattrs=(symbol=circlefilled color=white size=5.25pt) colormodel=(white red yellow blue green) colorresponse=s2color; * Candy sprinkles;
spline x=x y=y / lineattrs=(color=pink thickness=3pt);               * Draw smoother outline of Easter Egg;
xaxis display=none min=-.925 max=.925 offsetmax=.001 offsetmin=.001; * Limit x/y axis bounds;
yaxis display=none min=-.80 max=1.05 offsetmax=.001 offsetmin=.001;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;TASTIER VERSION OF ABOVE&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="RealEasterEggCookie.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/114110i393B42807D848E66/image-size/medium?v=v2&amp;amp;px=400" role="button" title="RealEasterEggCookie.png" alt="RealEasterEggCookie.png" /&gt;&lt;/span&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 04 Apr 2026 22:00:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Graphics-Programming/Fun-With-SAS-ODS-Graphics-Easter-Egg-Cookie-Polygon-Vector/m-p/985963#M25879</guid>
      <dc:creator>tc</dc:creator>
      <dc:date>2026-04-04T22:00:54Z</dc:date>
    </item>
    <item>
      <title>Fun With SAS ODS Graphics: What Are the 2026 Best Picture Oscar Nominees' Odds of Winning?</title>
      <link>https://communities.sas.com/t5/Graphics-Programming/Fun-With-SAS-ODS-Graphics-What-Are-the-2026-Best-Picture-Oscar/m-p/984799#M25859</link>
      <description>&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="2026OscarsSmall.png" style="width: 999px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/113638i5992523470FBD7C9/image-size/large?v=v2&amp;amp;px=999" role="button" title="2026OscarsSmall.png" alt="2026OscarsSmall.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Oscars are tonight, so here's a SAS ODS Graphics annotated text + needle chart of the implied probability + &lt;A href="https://www.espn.com/espn/betting/story/_/id/48162551/2026-oscars-odds-betting-picks-predictions" target="_self"&gt;odds of winning&lt;/A&gt; for the Best Picture nominees (Spoiler Alert: things look good for&amp;nbsp;&lt;EM&gt;One Battle After Another&lt;/EM&gt;!).&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Didn't get to watch all the nominees? No problem! Clickable images in &lt;A href="https://tedconway.github.io/Misc/oscars2026.html" target="_self"&gt;GitHub-hosted version of SAS ODS Graphics chart&lt;/A&gt; will take you to the 2026 Academy Awards Best Picture nominee trailers on YouTube!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;* 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 &amp;amp; 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;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;DETAIL (SVG)&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="2026OscarsLarge.png" style="width: 999px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/113639i141CB70C3EFC2737/image-size/large?v=v2&amp;amp;px=999" role="button" title="2026OscarsLarge.png" alt="2026OscarsLarge.png" /&gt;&lt;/span&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;EXCEL INPUT&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="BestPicture2026Info.png" style="width: 999px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/113640iCFD5C6D1C4CFE44E/image-size/large?v=v2&amp;amp;px=999" role="button" title="BestPicture2026Info.png" alt="BestPicture2026Info.png" /&gt;&lt;/span&gt;&lt;/STRONG&gt;&lt;/P&gt;</description>
      <pubDate>Sun, 15 Mar 2026 16:35:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Graphics-Programming/Fun-With-SAS-ODS-Graphics-What-Are-the-2026-Best-Picture-Oscar/m-p/984799#M25859</guid>
      <dc:creator>tc</dc:creator>
      <dc:date>2026-03-15T16:35:55Z</dc:date>
    </item>
    <item>
      <title>Fun With SAS ODS Graphics: Super Bowl LX Boxplot Matchup (Maye vs Darnold)</title>
      <link>https://communities.sas.com/t5/Graphics-Programming/Fun-With-SAS-ODS-Graphics-Super-Bowl-LX-Boxplot-Matchup-Maye-vs/m-p/983194#M25804</link>
      <description>&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SuperBowlLX.png" style="width: 999px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/113074i842ADA9BD2E58909/image-size/large?v=v2&amp;amp;px=999" role="button" title="SuperBowlLX.png" alt="SuperBowlLX.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;&lt;/P&gt;
&lt;P&gt;The New England Patriots' Drake Maye squares up against the Seattle Seahawks' Sam Darnold Sunday in Super Bowl LX, so here's a boxplot scouting report comparing the pair's passing yardages for the 2025-26 season. Go [&lt;EM&gt;your team here&lt;/EM&gt;]!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;* Fun With SAS ODS Graphics: Super Bowl LX QB Boxplot Tale of the Tape (Maye vs. Darnold)
  Football markers courtesy of Bruno Landowski thenounproject.com/icon/football-243375/
  NFL QB stats/images courtesy of ESPN.com, Super Bowl LX logo courtesy of Wikipedia;

proc import file='~/superbowl_lx_qbs.xlsx' dbms=xlsx out=qb replace; * Grab 2025-26 regular and postseason QB stats (copied-and-pasted from ESPN.com); 
 
%SGANNO;     * Use SAS-provided macros to annotate chart with ESPN.com photos of Maye+Darnold and Super Bowl LX logo from Wikipedia;         
data qbpics;
%SGIMAGE (image="/home/ted.conway/drakemaye.png",drawspace="DATAVALUE",xc1="Drake Maye",y1=-38,height=112,heightunit="DATA",anchor="BOTTOM");
%SGIMAGE (image="/home/ted.conway/samdarnold.png",drawspace="DATAVALUE",xc1="Sam Darnold",y1=-38,height=118,heightunit="DATA",anchor="BOTTOM");
%SGIMAGE (image="/home/ted.conway/Super_Bowl_LX_Logo.svg.png",imagescale="fitheight",layer="back",drawspace="datapercent",x1=52,y1=50,height=418,anchor="center",transparency=.75);
  
proc sql;    * Add yard labels for only highest and lowest passing yardage games;
create table qb3 as select qb.*, case when yds=minyds or yds=maxyds then Yds end as Ydsminmax
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 order by qb;

ods graphics / reset noborder imagefmt=svg; * Generate annotated box + scatter plots of passing yardage in each game of 2025-26 season (regular + playoffs); 
proc sgplot data=qb3 noautolegend sganno=qbpics noborder nowall;  
inset "SUPER BOWL LX" / textattrs=(size=15pt 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=Ydsminmax datalabelpos=left datalabelattrs=(size=9pt color=black weight=bold) markerattrs=(symbol=football size=24pt) transparency=0; * Markers with passing yards in each game;
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 valueattrs=(size=12pt color=black weight=bold); 
yaxis display=all label="PASSING YDS 2025-26 REGULAR SEASON + PLAYOFF GAMES" valueattrs=(weight=bold color=black) min=-40 offsetmin=0;
inset "QB" "PASSING" "MATCHUP" / valuealign=center textattrs=(size=14pt weight=bold) position=bottom;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;SCREENSHOT - INPUT DATA FROM ESPN.COM&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DarnoldMayeStats.png" style="width: 999px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/113075i513A61C34D50E944/image-size/large?v=v2&amp;amp;px=999" role="button" title="DarnoldMayeStats.png" alt="DarnoldMayeStats.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Sun, 08 Feb 2026 00:27:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Graphics-Programming/Fun-With-SAS-ODS-Graphics-Super-Bowl-LX-Boxplot-Matchup-Maye-vs/m-p/983194#M25804</guid>
      <dc:creator>tc</dc:creator>
      <dc:date>2026-02-08T00:27:12Z</dc:date>
    </item>
    <item>
      <title>Fun With SAS ODS Graphics: Tally Mark New Year's Eve Countdown Timer (Vector + Text Plots)</title>
      <link>https://communities.sas.com/t5/Graphics-Programming/Fun-With-SAS-ODS-Graphics-Tally-Mark-New-Year-s-Eve-Countdown/m-p/981326#M25764</link>
      <description>&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="NewYear2026.gif" style="width: 576px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/112444iA19F86E9B64BBFBB/image-size/large?v=v2&amp;amp;px=999" role="button" title="NewYear2026.gif" alt="NewYear2026.gif" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://en.wikipedia.org/wiki/Tally_marks" target="_self"&gt;Tally marks&lt;/A&gt; aren't just &lt;A href="https://tvtropes.org/pmwiki/pmwiki.php/Main/TallyMarksOnThePrisonWall" target="_self"&gt;for prison walls&lt;/A&gt; anymore. &lt;span class="lia-unicode-emoji" title=":grinning_face:"&gt;😀&lt;/span&gt; Here's a SAS ODS Graphics take on a Tally Mark-based New Year's Eve Countdown Timer. Happy New Year, all!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;* Fun With SAS ODS Graphics: Tally Mark New Year's Eve Countdown Timer (Vector + Text Plots)
  Reference: https://en.wikipedia.org/wiki/Tally_marks;

data tally;                                          * Create x/y points for 10 tally marks for countdown;
retain y 1 yo -1 yt 1.5;                             * y-values for vectors, text;
do x=0 to 10;                                        * 8 Vertical lines;
  xo=x;
  if ^(1&amp;lt;=x&amp;lt;=4 or 6&amp;lt;=x&amp;lt;=9) then xo=.;                * Vertical lines only at 1-4, 6-9;
   xt=x; count=put(x,2.);                            * Display # seconds (0-10) above tally marks;
  output;
end;
count=.; xt=.; yt=.;
xo=0; yo=-.6; x=5;  y=.6; output;                    * 2 diagonal lines at 5 and 10 seconds;
xo=5; yo=-.6; x=10; y=.6; output;

proc sql;                                            * Create countdown frames, removing 1 mark with each new frame;
create table frames as 
select t2.frame, t.* from tally t, (select distinct x as frame from tally) t2
union all 
select 11, t.* from tally t                          /* Dupe 1st frame ('10') to show it twice as long */
order by frame desc;

options nobyline;                                    * Animated GIF initialization;
ods _all_ close;                                     * Frame duration is 1 second for countdown;
options papersize=('6 in', '6 in') printerpath=gif animation=start 
        nodate nonumber animloop=YES animduration=1 NOANIMOVERLAY ;
ods printer file='/home/ted.conway/NewYear2026/NewYear2026.gif';
ods graphics / width=6in height=6in imagefmt=GIF border=off;
                                                     * Create countdown animated GIF (vector + text plots);
proc sgplot data=frames(where=(frame&amp;gt;=x)) nowall noborder noautolegend;
by frame notsorted;                                  * One for each second with tally marks;
styleattrs backcolor=black;
inset "2025" / textattrs=(color=white weight=bold size=48pt) position=bottom; * Current year;
text x=xt y=yt text=count / contributeoffsets=none textattrs=(color=white weight=bold size=24pt) strip; * Display 0-10 above tally marks;
vector x=x y=y / noarrowheads xorigin=xo yorigin=yo lineattrs=(color=white thickness=12pt); * Tally marks for 0-10 (arrowless vectors);
xaxis display=none values=(-1 11) offsetmax=0 offsetmin=0; * Suppress axes;
yaxis display=none values=(-2 2) offsetmax=0 offsetmin=0;
                                                     * Final frame to display Happy New Year! + 2026;
data happynewyear; retain xt2 5 yt2 0 txt 'HAPPY*NEW YEAR!'; output;

options animduration=2.5;                            * Increase duration of final frame to 2.5 seconds;
proc sgplot data=happynewyear nowall noborder noautolegend;
styleattrs backcolor=black;
inset "2026" / textattrs=(color=white weight=bold size=48pt) position=bottom; * New year;
text x=xt2 y=yt2 text=txt / splitchar='*' splitpolicy=splitalways contributeoffsets=none textattrs=(color=white weight=bold size=60pt) strip; * Happy New Year greeting;
xaxis display=none values=(-1 11) offsetmax=0 offsetmin=0; * Suppress axes;
yaxis display=none values=(-2 2) offsetmax=0 offsetmin=0;
run;
options printerpath=gif animation=stop;              * Wrap-up animated GIF creation;                         
run;
ods printer close;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;A Rough Draft&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="DraftNewYear2026.gif" style="width: 576px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/112445i3C469003E09E1DF6/image-size/large?v=v2&amp;amp;px=999" role="button" title="DraftNewYear2026.gif" alt="DraftNewYear2026.gif" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Sun, 28 Dec 2025 22:33:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Graphics-Programming/Fun-With-SAS-ODS-Graphics-Tally-Mark-New-Year-s-Eve-Countdown/m-p/981326#M25764</guid>
      <dc:creator>tc</dc:creator>
      <dc:date>2025-12-28T22:33:41Z</dc:date>
    </item>
    <item>
      <title>Re: Lost my  saved sas program in Sas OnDemand</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Lost-my-saved-sas-program-in-Sas-OnDemand/m-p/981316#M379072</link>
      <description>&lt;P&gt;Don't know if this is what happened to you, but what still confuses me momentarily whenever it happens to me is that a save does nothing if you haven't selected a directory to save the file in AND you are not notified what the problem is, leading to the repeated save attempts you noted. I've also seen this with software other than SAS Studio - wish UI/UX folks would address this, because it can drive one crazy!&amp;nbsp;&lt;span class="lia-unicode-emoji" title=":grinning_face:"&gt;😀&lt;/span&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The other gotcha here is that SAS Studio does a good job of making unsaved changes available when you open your next session, but ONLY if you've done an initial save. Again, this can happen with other software, but if SAS is looking for enhancement ideas, I like the approach that software like Jupyter, VS Code, and Snowflake have adopted, which is to make unsaved code available across sessions in a default name (e.g., as untitled-1.pynb), although I have to confess I didn't like this practice at first! &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 27 Dec 2025 19:00:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Lost-my-saved-sas-program-in-Sas-OnDemand/m-p/981316#M379072</guid>
      <dc:creator>tc</dc:creator>
      <dc:date>2025-12-27T19:00:24Z</dc:date>
    </item>
    <item>
      <title>Fun With SAS ODS Graphics: Yet Another Text Plot Xmas Tree</title>
      <link>https://communities.sas.com/t5/Graphics-Programming/Fun-With-SAS-ODS-Graphics-Yet-Another-Text-Plot-Xmas-Tree/m-p/981279#M25763</link>
      <description>&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="oxmastree2025.png" style="width: 384px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/112437iF5D03154B3B9142E/image-size/large?v=v2&amp;amp;px=999" role="button" title="oxmastree2025.png" alt="oxmastree2025.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Another year, another SAS ODS Graphics text plot take on a &lt;A href="https://static.dezeen.com/uploads/2010/12/CHRISTMAS-CARD-big.gif" target="_self"&gt;neat Christmas card&lt;/A&gt;, this one from &lt;A href="https://www.dezeen.com/2010/12/24/designer-christmas-cards-3/" target="_self"&gt;dezeen's 2010 collection&lt;/A&gt;&amp;nbsp;. Happy Holidays, all!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;* Fun With SAS ODS Graphics: Yet Another Text Plot Xmas Tree 
  SAS ODS Graphics take on a neat 2010 card at dezeen.com/2010/12/24/designer-christmas-cards-3;

data greetings;                                        * Generate text and x/y points for 'tree';
retain greeting '*|WE|WISH|YOU A|MERRY|CHRISTMAS|AND A HAPPY|NEW YEAR.' X .4 Y .85; 
output;

%SGANNO;                                               * Extend Y descender in "YEAR" to make a 'tree trunk';
DATA extend_Y;                                         * Generate a rectangle 'tree trunk';
%SGRECTANGLE(X1=153, Y1=169, WIDTH=4, HEIGHT=75, X1SPACE="DATAPIXEL", Y1SPACE="DATAPIXEL",
             ANCHOR="TOPLEFT", DRAWSPACE="GRAPHPIXEL", DISPLAY="FILL", FILLCOLOR="WHITE",
             HEIGHTUNIT="PIXEL", WIDTHUNIT="PIXEL"); 
                                                       * Generate annotated text plot 'tree' on ellipse plot 'snow hill';
ods graphics / reset antialias width=4in height=6in noborder imagefmt=png antialias; 
proc sgplot data=greetings noautolegend nowall pad=3 noborder sganno=extend_Y;  
styleattrs backcolor=cx008975;                         * Greenish background;
text x=x y=y text=greeting / position=bottom textattrs=(color=white size=24pt weight=bold) splitchar='|' splitpolicy=splitalways contributeoffsets=none; * White lettering;
ellipseparm semimajor=2 semiminor=.35 / xorigin=.4 yorigin=-.2 nooutline fill fillattrs=(color=white); * White snow hill;
xaxis display=none values=(0 1) offsetmax=0 offsetmin=0; * Suppress axes;
yaxis display=none values=(0 1) offsetmax=0 offsetmin=0;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 24 Dec 2025 05:24:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Graphics-Programming/Fun-With-SAS-ODS-Graphics-Yet-Another-Text-Plot-Xmas-Tree/m-p/981279#M25763</guid>
      <dc:creator>tc</dc:creator>
      <dc:date>2025-12-24T05:24:24Z</dc:date>
    </item>
    <item>
      <title>Fun With Python and Emoji: What Might Adding Pictures to Text Programming Languages Look Like?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Fun-With-SAS-and-Emoji-What-Might-a-Rebus-Influenced-Programming/m-p/981133#M379034</link>
      <description>&lt;P&gt;Did a Python + DuckDB SQL take on this at PyData Boston.&lt;/P&gt;
&lt;P&gt;Presentation slides and notebook at &lt;A href="https://github.com/tedconway/pydataboston2025" target="_self"&gt;https://github.com/tedconway/pydataboston2025&lt;/A&gt;&amp;nbsp;(I used VS Code + Python on Windows but think the code might run on SAS Viya Workbench or SAS Viya for Learners&amp;nbsp;&lt;span class="lia-unicode-emoji" title=":grinning_face:"&gt;😀&lt;/span&gt;).&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Video at &lt;A href="https://www.youtube.com/watch?v=QfpUQYsE8bA" target="_blank"&gt;https://www.youtube.com/watch?v=QfpUQYsE8bA&lt;/A&gt;&amp;nbsp; (lots of hemming &amp;amp; hawing, so try watching at 1.5x speed!).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="PYDATA2025-Slide2.png" style="width: 999px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/112379iD5031BD209B002C8/image-size/large?v=v2&amp;amp;px=999" role="button" title="PYDATA2025-Slide2.png" alt="PYDATA2025-Slide2.png" /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="PYDATA2025-Slide3.png" style="width: 999px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/112378i6AF46312E261C1C9/image-size/large?v=v2&amp;amp;px=999" role="button" title="PYDATA2025-Slide3.png" alt="PYDATA2025-Slide3.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 20 Dec 2025 05:12:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Fun-With-SAS-and-Emoji-What-Might-a-Rebus-Influenced-Programming/m-p/981133#M379034</guid>
      <dc:creator>tc</dc:creator>
      <dc:date>2025-12-20T05:12:34Z</dc:date>
    </item>
    <item>
      <title>Fun With SAS ODS Graphics: Are You Ready for Some Thanksgiving Football?</title>
      <link>https://communities.sas.com/t5/Graphics-Programming/Fun-With-SAS-ODS-Graphics-Are-You-Ready-for-Some-Thanksgiving/m-p/979647#M25747</link>
      <description>&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AreYouReadyForSomeThanksgivingFootball.png" style="width: 999px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/111601i7BBAA117C5C0F5D9/image-size/large?v=v2&amp;amp;px=999" role="button" title="AreYouReadyForSomeThanksgivingFootball.png" alt="AreYouReadyForSomeThanksgivingFootball.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;A Thanksgiving Day football-themed remix of the &lt;A href="https://communities.sas.com/t5/Graphics-Programming/Fun-With-SAS-ODS-Graphics-quot-Construction-Paper-quot/td-p/701713" target="_self"&gt;"Construction Paper" Thanksgiving Turkey&lt;/A&gt; post from 2020. Happy Thanksgiving, all!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;* 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;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;IMAGES USED (SOURCE: MS-WORD ICONS, ESPN.COM)&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="footballicon_red.png" style="width: 200px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/111602i68B626EE280BF1EE/image-size/small?v=v2&amp;amp;px=200" role="button" title="footballicon_red.png" alt="footballicon_red.png" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="footballicon_sienna.png" style="width: 200px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/111607iD91E9070FB4CD89B/image-size/small?v=v2&amp;amp;px=200" role="button" title="footballicon_sienna.png" alt="footballicon_sienna.png" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="footballicon_yellow.png" style="width: 200px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/111606iDD1826712445CDBF/image-size/small?v=v2&amp;amp;px=200" role="button" title="footballicon_yellow.png" alt="footballicon_yellow.png" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="footballicon_orange.png" style="width: 200px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/111604iBC31A20701723490/image-size/small?v=v2&amp;amp;px=200" role="button" title="footballicon_orange.png" alt="footballicon_orange.png" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="pmahomes3.png" style="width: 200px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/111608i0F0CC98A263DF03F/image-size/small?v=v2&amp;amp;px=200" role="button" title="pmahomes3.png" alt="pmahomes3.png" /&gt;&lt;/span&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 27 Nov 2025 08:53:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Graphics-Programming/Fun-With-SAS-ODS-Graphics-Are-You-Ready-for-Some-Thanksgiving/m-p/979647#M25747</guid>
      <dc:creator>tc</dc:creator>
      <dc:date>2025-11-27T08:53:25Z</dc:date>
    </item>
    <item>
      <title>Fun With SAS ODS Graphics: Veterans Day</title>
      <link>https://communities.sas.com/t5/Graphics-Programming/Fun-With-SAS-ODS-Graphics-Veterans-Day/m-p/978642#M25718</link>
      <description>&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="veteransday2025.png" style="width: 999px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/111231i2BCFA566DD3DF41C/image-size/large?v=v2&amp;amp;px=999" role="button" title="veteransday2025.png" alt="veteransday2025.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Happy Veterans Day to all who serve and protect our freedom!&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;PRE&gt;* Fun With SAS ODS Graphics: Veterans Day
  Images from en.wikipedia.org/wiki/United_States_Department_of_Defense
              en.wikipedia.org/wiki/United_States_Department_of_Veterans_Affairs;

data services;                     * Generate x/y points for services logos/emblems;
input image : $255.;               * Read image names, images are in ~/vets directory;
image='/home/ted.conway/vets/'||image;
if 1&amp;lt;=_n_&amp;lt;=6 then do;              * Distribute images for the 6 armed services branches over a unit circle (angles in radians); 
  x=cos((_n_-1)*(60/360)*2*constant('pi')*1); 
  y=sin((_n_-1)*(60/360)*2*constant('pi')*1); 
  output;
  end;
else do;                           * Display Veterans Affairs logo/emblem in center;
  x=0; 
  y=0;
  output;
  end;                             * List of names of logo/emblem image files (images from Wikipedia);
datalines;
512px-Mark_of_the_United_States_Army.svg.png
512px-Emblem_of_the_United_States_Marine_Corps.svg.png
512px-Emblem_of_the_United_States_Navy.svg.png
512px-U.S._Air_Force_service_mark.svg.png
512px-Seal_of_the_United_States_Space_Force.svg.png
512px-Seal_of_the_United_States_Coast_Guard.svg.png
512px-Seal_of_the_U.S._Department_of_Veterans_Affairs.svg.png
;
data images;                        * Use SAS-provided macros to create annotate dataset to position/size images;
set services;
%SGANNO;                            
%SGIMAGE (image=IMAGE,drawspace="datavalue",imagescale="fitheight",x1=X,y1=Y,height=.75,heightunit="DATA",anchor="CENTER");
                                    * Generate chart of connected logos/emblems (Annotated with images Vector+Ellipseparm chart);
ods graphics / reset noborder width=9in height=9in imagefmt=svg;
proc sgplot data=services aspect=1 nowall noborder noautolegend sganno=images;
styleattrs backcolor=skyblue;
inset "THANK YOU" / textattrs=(weight=bold size=24pt) position=top;
inset "FOR YOUR SERVICE" / textattrs=(weight=bold size=22pt) position=bottom;
ellipseparm semimajor=1 semiminor=1 / outline lineattrs=(color=black thickness=3pt); * Connect outer logos/emblems to each other with a circle;          
vector x=x y=y / noarrowheads lineattrs=(color=black thickness=4pt); * Connecct outer logos/emblems to center with lines;
xaxis display=none values=(-1.475 1.475) offsetmin=0 offsetmax=0; * Suppress axes;
yaxis display=none values=(-1.475 1.475) offsetmin=0 offsetmax=0;
ellipseparm semimajor=3 semiminor=3; * 'Dummy' circle outside of bounds to make x/y scales consistent;  
run;&lt;/PRE&gt;</description>
      <pubDate>Tue, 11 Nov 2025 06:05:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Graphics-Programming/Fun-With-SAS-ODS-Graphics-Veterans-Day/m-p/978642#M25718</guid>
      <dc:creator>tc</dc:creator>
      <dc:date>2025-11-11T06:05:00Z</dc:date>
    </item>
    <item>
      <title>Fun With SAS ODS Graphics: Monster Mash (Band + Polygon + Ellipseparm Plot Mashup)</title>
      <link>https://communities.sas.com/t5/Graphics-Programming/Fun-With-SAS-ODS-Graphics-Monster-Mash-Band-Polygon-Ellipseparm/m-p/977860#M25709</link>
      <description>&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MonsterCard.png" style="width: 440px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/110969iC28991D78A3F4EA0/image-size/large?v=v2&amp;amp;px=999" role="button" title="MonsterCard.png" alt="MonsterCard.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It's Halloween week, so here's a quick SAS ODS Graphics take on a cute &lt;A href="https://www.thebestideasforkids.com/handmade-halloween-cards/" target="_self"&gt;Halloween Card craft project&lt;/A&gt; for kids. Happy Trick-or-Treating, all!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;* Fun With SAS ODS Graphics: Monster Mash (Band + Polygon + Ellipseparm Plots Mashup)
  Inspired by Halloween card at thebestideasforkids.com/handmade-halloween-cards/
  Note: Used MS-Paint to get x/y points and RGB hex colors;
  
data zigzag;                                                    /* x/y points making up monster's hair */
input xZ yZ @@; output;
datalines;
0 67  35 112  105 45  171 112  242 40  316 112  378 49  434 112  460 90
;
data rectangles;                                                /* x/y points making up monster's eyebrow and mouth */
input xR yR @@; polygon=floor((_n_-1)/4)+1; output;
datalines;
74 184  363 108  377 160  88 240  158 240  389 285  379 341  144 295
;
data circles;                                                   /* x/y points making up monster's eyeballs and pupils */
input xC yC r @@; color=mod(_n_,2);                             /* Alternate colors - white for eyeballs, black for pupils */
datalines;
210 192 24  213 191 14  261 184 24  265 184 14 
;
data combined; set zigzag rectangles circles;                   /* Mashup all of the Monster's points */

ods graphics / reset height=3.7in width=4.58in noborder;
proc sgplot data=combined nowall pad=0 noautolegend noborder;   /* Monster mash - band, polygon, ellipseparm plots */
styleattrs backcolor=cxA7DC8A datacolors=(white cx28272D);      /* Colors - green skin, black &amp;amp; white eyes */
band x=xZ lower=0 upper=yZ / fill fillattrs=(color=cx635A5D);   /* Monster's hair (off-black band chart) */
polygon x=xR y=yR id=polygon / fill fillattrs=(color=cx464040); /* Monster's off-black eyebrow and mouth */
ellipseparm semimajor=r semiminor=r / xorigin=xC yorigin=yC     /* Monster's eyeballs/pupils */
            slope=0 fill outline group=color nomissinggroup lineattrs=(color=black thickness=1pt);
yaxis display=none offsetmin=0 offsetmax=0 reverse values=(0 370);
xaxis display=none offsetmin=0 offsetmax=0 values=(0 458);
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Work-in-Progress" style="width: 440px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/110970i66CBC7D349C0BCD6/image-size/large?v=v2&amp;amp;px=999" role="button" title="MonsterCardOutline.png" alt="Work-in-Progress" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Work-in-Progress&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 27 Oct 2025 05:51:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Graphics-Programming/Fun-With-SAS-ODS-Graphics-Monster-Mash-Band-Polygon-Ellipseparm/m-p/977860#M25709</guid>
      <dc:creator>tc</dc:creator>
      <dc:date>2025-10-27T05:51:11Z</dc:date>
    </item>
    <item>
      <title>Re: Fun With SAS and Emoji: What Might a Rebus-Influenced Programming Language Look Like?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Fun-With-SAS-and-Emoji-What-Might-a-Rebus-Influenced-Programming/m-p/974488#M377912</link>
      <description>&lt;P&gt;Interestingly, even cloud-based Excel with Microsoft OneDrive appears to have its problems with complex emoji, getting it right in Edit mode, but wrong in Slideshow mode.&amp;nbsp;&lt;span class="lia-unicode-emoji" title=":grinning_face:"&gt;😀&lt;/span&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Editor - Cloud (Correct)" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/109740i2DBE681403016E6F/image-size/medium?v=v2&amp;amp;px=400" role="button" title="RunningManFacingRightEditor.jpg" alt="Editor - Cloud (Correct)" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Editor - Cloud (Correct)&lt;/span&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Slideshow - Cloud (Incorrect)" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/109741i59F6D1DEEE319FCB/image-size/medium?v=v2&amp;amp;px=400" role="button" title="RunningManFacingRightSlideshow.jpg" alt="Slideshow - Cloud (Incorrect)" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Slideshow - Cloud (Incorrect)&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Although Slideshow mode works fine when the OneDrive PowerPoint is opened in Desktop instead of the Cloud (slightly different emoji look though!).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Slideshow - Desktop (Correct)" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/109743i8FBC9FB3E84A8D12/image-size/medium?v=v2&amp;amp;px=400" role="button" title="RunningManFacingRightSlideshowDesktop.jpg" alt="Slideshow - Desktop (Correct)" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Slideshow - Desktop (Correct)&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 08 Sep 2025 18:33:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Fun-With-SAS-and-Emoji-What-Might-a-Rebus-Influenced-Programming/m-p/974488#M377912</guid>
      <dc:creator>tc</dc:creator>
      <dc:date>2025-09-08T18:33:13Z</dc:date>
    </item>
    <item>
      <title>Fun With SAS and Emoji: What Might a Rebus-Influenced Programming Language Look Like?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Fun-With-SAS-and-Emoji-What-Might-a-Rebus-Influenced-Programming/m-p/974356#M377892</link>
      <description>&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SAS Data Step &amp;amp; Proc Print Emoji Makeover" style="width: 999px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/109678i5373C2EF09E69BDF/image-size/large?v=v2&amp;amp;px=999" role="button" title="EmojiSAS.png" alt="SAS Data Step &amp;amp; Proc Print Emoji Makeover" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;SAS Data Step &amp;amp; Proc Print Emoji Makeover&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Remember those fun Highlights for Children stories in which words were replaced with pictures to help and engage young readers?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Ever wonder what that might look like in a programming language?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This WUSS 2025 paper takes a whimsical look at examples of rebus-flavored SAS and SQL code snippets and provides rudimentary SAS and Python preprocessor code snippets to translate text-based programs with emojis back into executable text-only code using both SAS's Unicode string 'K' functions and the Python regex package.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Paper available in WUSS 2025 Proceedings: &lt;BR /&gt;&lt;A href="https://www.wuss.org/proceedings/2025/WUSS-2025-Paper-184.pdf" target="_self"&gt;https://www.wuss.org/proceedings/2025/WUSS-2025-Paper-184.pdf&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Slides (pptx, w/speaker notes) available on Microsoft OneDrive: &lt;BR /&gt;&lt;A href="https://1drv.ms/p/c/de2f46cafc97a22d/EWBG6seBPWVAkvZSabrpwG0BdYYmvl61QvC-pjdYKgvI1w?e=kJ8Rep" target="_self"&gt;https://1drv.ms/p/c/de2f46cafc97a22d/EWBG6seBPWVAkvZSabrpwG0BdYYmvl61QvC-pjdYKgvI1w?e=kJ8Rep&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Slides (pdf) available on Microsoft OneDrive:&lt;BR /&gt;&lt;A href="https://1drv.ms/b/c/de2f46cafc97a22d/EXmiFfLvgBdLh_mYeO7i25ABe7naWCsqUETiX9U1h7UkGg?e=CAD5Ao" target="_self"&gt;https://1drv.ms/b/c/de2f46cafc97a22d/EXmiFfLvgBdLh_mYeO7i25ABe7naWCsqUETiX9U1h7UkGg?e=CAD5Ao&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SAS Proc SQL Emoji Makeover" style="width: 999px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/109679iFF1B3EBBB95115FE/image-size/large?v=v2&amp;amp;px=999" role="button" title="EmojiSQL.png" alt="SAS Proc SQL Emoji Makeover" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;SAS Proc SQL Emoji Makeover&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Sun, 07 Sep 2025 20:21:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Fun-With-SAS-and-Emoji-What-Might-a-Rebus-Influenced-Programming/m-p/974356#M377892</guid>
      <dc:creator>tc</dc:creator>
      <dc:date>2025-09-07T20:21:00Z</dc:date>
    </item>
    <item>
      <title>Fun With SAS ODS Graphics: Pony Bead Flag Fourth of July Craft Project</title>
      <link>https://communities.sas.com/t5/Graphics-Programming/Fun-With-SAS-ODS-Graphics-Pony-Bead-Flag-Fourth-of-July-Craft/m-p/970185#M25597</link>
      <description>&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="PonyBeadJuly4thFlag.png" style="width: 999px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/108145i57428AB3BAA9CC6C/image-size/large?v=v2&amp;amp;px=999" role="button" title="PonyBeadJuly4thFlag.png" alt="PonyBeadJuly4thFlag.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;A quick SAS ODS Graphics take on a clever &lt;A href="https://iheartcraftythings.com/pony-bead-flag-craft.html" target="_self"&gt;pony bead flag craft project&lt;/A&gt;. Have a great 4th, all!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;* Fun With SAS ODS Graphics: Pony Bead 4th of July Flag Craft Project
  Inspired by iheartcraftythings.com/pony-bead-flag-craft.html;
  
data flag;                                          * Generate points for red/white/blue 'beads' &amp;amp; white stars;
do y=1 to 14;                                       * 14 rows of beads; 
  do x=1 to 19;                                     * 19 beads per row;
    if y&amp;gt;=7 and x&amp;lt;=9 then color=1;                  * Blue beads for 'canton';
    else if y in (1,2,5,6,9,10,13,14) then color=2; * Red beads for stripes;
    else color=3;                                   * White beads for stripes;
    output;
  end; 
end;
x=.;y=.;
do y2=7.75 to 13.5 by (13.5-7.75)/3;                * 4 rows of stars, distribute evenly;
  do x2=1.75 to 8.25 by (8.25-1.75)/3;              * 4 columns of stars, distribute evenly; 
    output; 
  end; 
end;
                                                    * Make a flag using ellipse and scatter plots;
ods graphics / antialias height=7in width=9.5in imagefmt=svg noborder; * Make height/width proportional to rows/columns;
proc sgplot data=flag noborder noautolegend pad=0 nowall;
styleattrs backcolor=cx3C3B6E datacolors=(red white blue); * Navy-ish blue background;
symbolchar name=uniStar char='2605'x;               * Unicode value for 5-point star;
ellipseparm semimajor=.48 semiminor=.48 / fill xorigin=x yorigin=y group=color nomissinggroup; * Red/white/blue 'beads';
scatter x=x y=y / markerattrs=(color=cx3C3B6E symbol=circlefilled size=15pt); * 'Holes' in center of 'beads';
scatter x=x2 y=y2 / markerattrs=(symbol=uniStar color=white size=96pt); * White stars;
xaxis display=none values=(.5 to 19.5) offsetmin=0 offsetmax=0; * Suppress axes and minimize padding around markers;
yaxis display=none values=(.5 to 14.5) offsetmin=0 offsetmax=0;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 03 Jul 2025 08:14:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Graphics-Programming/Fun-With-SAS-ODS-Graphics-Pony-Bead-Flag-Fourth-of-July-Craft/m-p/970185#M25597</guid>
      <dc:creator>tc</dc:creator>
      <dc:date>2025-07-03T08:14:43Z</dc:date>
    </item>
    <item>
      <title>Fun w/SAS ODS Graphics: Happy Mother's Day Wreath (Scatter + Text Plots)</title>
      <link>https://communities.sas.com/t5/Graphics-Programming/Fun-w-SAS-ODS-Graphics-Happy-Mother-s-Day-Wreath-Scatter-Text/m-p/966251#M25497</link>
      <description>&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="wreath.gif" style="width: 480px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/106856i9EF6D99221E28472/image-size/large?v=v2&amp;amp;px=999" role="button" title="wreath.gif" alt="wreath.gif" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;A quick change-all-stars-to-hearts fork of the earlier Fun w/SAS ODS Graphics &lt;A href="https://communities.sas.com/t5/Graphics-Programming/Fun-w-SAS-ODS-Graphics-Twinkle-Twinkle-Little-Star-Holiday/td-p/851044" target="_self"&gt;Twinkle-Twinkle-Little-Star Holiday Wreath&lt;/A&gt;. Happy Mother's Day, all!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;* Fun w/SAS ODS Graphics: Happy Mother's Day Wreath of Hearts (Scatter + Text Plots)
  A fork of earlier Fun w/SAS ODS Graphics Twinkle-Twinkle-Little-Star Holiday Wreath;
  
data wreath;                                                      /* Generate points for "wreath" graph */                                              
do frame=1 to 25;                                                 /* Randomly change colors of hearts for each frame of GIF to make them twinkle */
  tx=0; ty=0; msg="HAPPY*MOTHER'S*DAY!"; output; tx=.; ty=.;      /* Happy Mother's Day! message in center of wreath */
  do theta=0 to 2*constant("pi")+.1 by (2*constant("pi"))/60;     /* Generate 60 points around a circle for hearts on wreath */  
    do r=1 to .7 by -.075;                                        /* Five con-centric circles of hearts */
      x=r*cos(theta);                                             /* A little trigonometry to get x-coordinate */                           
      y=r*sin(theta);                                             /* And y-coordinate */
      color=(rand("Integer", 0, 11));                              /* Assign a random color for a 12-pastel color ramp */
      output;
    end;
 end;  
end;

ods graphics / imagefmt=GIF width=5in height=5in noborder;        /* Record wreath images */  
options nobyline papersize=('5 in', '5 in') animduration=.2 animloop=yes animoverlay printerpath=gif animation=start nodate nonumber;
ods printer file='~/momwreath/wreath.gif';                        /* Animated GIF filename */
proc sgplot noautolegend aspect=1 noborder nowall pad=0;          /* Generate a wreath! */
by frame;                                                         /* One image per frame to make hearts twinkle */
styleattrs backcolor=bipb;                                        /* Brilliant purple background color */
symbolchar name=uniHeart char='2764'x;                             /* Unicode value for heart */
scatter x=x y=y / markerattrs=(symbol=uniHeart size=19pt) colormodel=(cXdda0dd cX87ceeb cX40e0D0 cXfff700 cX00ff7f cXbdfcc9 cXffc0cb cXffa07a cXee82ee cXc8a2c8 cX00cccc cXb573dc) colorresponse=color; * Generate pastel-colored hearts;
text x=tx y=ty text=msg / contributeoffsets=none textattrs=(size=30pt weight=bold color=white) splitchar='*' splitpolicy=splitalways contributeoffsets=none; * "Happy Mother's Day!" message;
xaxis display=none; yaxis display=none;                           /* Hide axes */
run;
options printerpath=gif animation=stop;                           /* Stop recording images */
ods printer close;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sun, 11 May 2025 02:43:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Graphics-Programming/Fun-w-SAS-ODS-Graphics-Happy-Mother-s-Day-Wreath-Scatter-Text/m-p/966251#M25497</guid>
      <dc:creator>tc</dc:creator>
      <dc:date>2025-05-11T02:43:42Z</dc:date>
    </item>
    <item>
      <title>Fun With SAS ODS Graphics: 2025 NFL Draft Picks At-A-Glance</title>
      <link>https://communities.sas.com/t5/Graphics-Programming/Fun-With-SAS-ODS-Graphics-2025-NFL-Draft-Picks-At-A-Glance/m-p/965479#M25475</link>
      <description>&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="2025_NFL_DRAFT_PICKS.png" style="width: 999px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/106628i86C5B425D13099B4/image-size/large?v=v2&amp;amp;px=999" role="button" title="2025_NFL_DRAFT_PICKS.png" alt="2025_NFL_DRAFT_PICKS.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Using &lt;A href="https://www.espn.com/nfl/draft/rounds" target="_self"&gt;2025 NFL Draft data&lt;/A&gt;, here's a SAS ODS Graphics scatter + box plot of all 257 draft picks by position. A version with interactive tool tips containing some info on all draftees can be &lt;A href="https://tedconway.github.io/Misc/nfldraft2025.html" target="_self"&gt;found on GitHub Pages&lt;/A&gt;. Go [&lt;EM&gt;your team here&lt;/EM&gt;]!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;* Fun With SAS ODS Graphics: 2025 NFL Draft Picks At-A-Glance
  Data from sportingnews.com/us/nfl/news/nfl-draft-picks-2025-live-results/1df59786e708218d8793ee67,
            espn.com/nfl/draft/rounds, nfl.com/draft/tracker/picks/1/1/2025;
            
proc import datafile='/home/ted.conway/NFL_DRAFT_PICKS_2025.xlsx' out=nflpicks dbms=xlsx replace; * Get data (was copied/pasted/tweaked in Excel);

proc sql;                                             * Split up composite field into individual fields;                                                    
create table nflpicks2a as
select round as Round, roundpick as RoundPick, overallpick as OverallPick, team as Team, scan(playerpositionschool,1,',') as Player, 
scan(playerpositionschool,2,',') as Position, scan(playerpositionschool,3,',') as School
from nflpicks p;
                                                      * Calc total # players at each position;
create table nflpicks2b as
select p.*, tot.players 
from nflpicks2a p
left join (select position, count(*) as players from nflpicks2a group by 1) tot on p.position=tot.position;
                                                      * Highlight top picks for each position (and one unexpectedly late pick!);
create table nflpicks2 as 
select n.*, case when toppick is not null or player='Shedeur Sanders' then trim(player)||' '||cats('(',school,')') end as topplayer
from nflpicks2b n 
left join (select position, min(overallpick) as toppick from nflpicks2b group by 1) p on n.overallpick=toppick
order by players desc;
                                                      * Calc xaxis points for reference lines for beginning of each round; 
select overallpick into :reflines separated by ' ' from nflpicks2 where roundpick=1 and overallpick&amp;gt;1 order by 1;  

proc sort data=nflpicks2 out=nflpicks3; 
by overallpick;
                                                      * Calc positions for Round 1 ... Round 7 headers at top of chart (x2axis);
data rounds(keep=round overallpick);                  * Figure out overall draft # for first pick in each round;
set nflpicks3 end=eof;
n=_n_;
if roundpick=1 or eof;                                * Also keep overall draft # of last pick;

data midpoints(keep=midpoint);                        * Calc midpoints of round picks for "ROUND N" x2axis headings;
set rounds end=eof;
lagr=lag(round);
lagp=lag(overallpick);
if lagr=. then midpoint=0;                            * First point on x2axis;                
else midpoint=lagp+(overallpick-lagp)/2;              * Points for "ROUND N" headings (N=1-7);
output;
if eof; midpoint=overallpick; output;                 * Last point on x2axis (last draft pick #);

proc sql;                                             * Save x2axis values for proc sgplot;
select distinct midpoint into :midpoints  separated by ' ' from midpoints order by 1;

ods html5 path='/home/ted.conway/nfldraft2025' body='nfldraft2025.html' options(bitmap_mode="inline");
ods graphics / reset imagemap=on height=9in width=16in imagefmt=png noborder imagename='NFLDRAFT2025'; 

proc sgplot data=nflpicks2 noautolegend;
title height=14pt bold '2025 NFL DRAFT PICKS';
hbox overallpick / group=position fillattrs=(transparency=.6) category=position Fill noOutliers nomean lineattrs=(thickness=0); * Box plot to show distributions/quartiles;
scatter x=overallpick y=position / x2axis markerattrs=(symbol=circle size=7pt) tip=(overallpick round RoundPick player position school team);  * Scatter plot of individual picks with tooltips;
scatter x=overallpick y=position / markerattrs=(symbol=circle size=0pt) datalabel=topplayer datalabelattrs=(size=9pt); * Scatter plot to display names of top picks;
yaxis discreteorder=data display=none;                 * y-axis is player positions;
yaxistable position / position=left label="POS" labelattrs=(size=9pt) valueattrs=(size=9pt) labeljustify=left;
yaxistable players / position=left stat=MEAN label='#' labelattrs=(size=9pt) valueattrs=(size=9pt);
xaxis label='OVERALL DRAFT PICK';                      * x-axis is overall draft pick numbers;
x2axis display=(noline noticks nolabel) valueattrs=(size=9pt) values=(&amp;amp;midpoints) valuesdisplay=('' 'ROUND 1' 'ROUND 2' 'ROUND 3' 'ROUND 4' 'ROUND 5' 'ROUND 6' 'ROUND 7' ''); * Show Round headings at top on x2axis;
refline &amp;amp;reflines / axis=x;                            * Show reference lines at beginning of each round;
run;
ods html5 close;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;SAMPLE DATA&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="2025_NFL_DRAFT_PICKS_DATA.png" style="width: 999px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/106630i0BDC4CBBDCA9613F/image-size/large?v=v2&amp;amp;px=999" role="button" title="2025_NFL_DRAFT_PICKS_DATA.png" alt="2025_NFL_DRAFT_PICKS_DATA.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;HTML5 Version With Tooltips&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="2025_NFL_DRAFT_PICKS_TOOL_TIPS.png" style="width: 999px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/106629iA404302C28D6DFEC/image-size/large?v=v2&amp;amp;px=999" role="button" title="2025_NFL_DRAFT_PICKS_TOOL_TIPS.png" alt="2025_NFL_DRAFT_PICKS_TOOL_TIPS.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 01 May 2025 07:47:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Graphics-Programming/Fun-With-SAS-ODS-Graphics-2025-NFL-Draft-Picks-At-A-Glance/m-p/965479#M25475</guid>
      <dc:creator>tc</dc:creator>
      <dc:date>2025-05-01T07:47:29Z</dc:date>
    </item>
    <item>
      <title>Re: Fun With SAS ODS Graphics: Here Comes Polygons-and-Ellipses Peter Cottontail!</title>
      <link>https://communities.sas.com/t5/Graphics-Programming/Fun-With-SAS-ODS-Graphics-Here-Comes-Polygons-and-Ellipses-Peter/m-p/964798#M25422</link>
      <description>&lt;P&gt;Good catch!&lt;/P&gt;</description>
      <pubDate>Tue, 22 Apr 2025 04:39:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Graphics-Programming/Fun-With-SAS-ODS-Graphics-Here-Comes-Polygons-and-Ellipses-Peter/m-p/964798#M25422</guid>
      <dc:creator>tc</dc:creator>
      <dc:date>2025-04-22T04:39:07Z</dc:date>
    </item>
    <item>
      <title>Fun With SAS ODS Graphics: Here Comes Polygons-and-Ellipses Peter Cottontail!</title>
      <link>https://communities.sas.com/t5/Graphics-Programming/Fun-With-SAS-ODS-Graphics-Here-Comes-Polygons-and-Ellipses-Peter/m-p/964692#M25420</link>
      <description>&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="PeterCottontail.png" style="width: 480px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/106361i9FFEDCAA71977F4B/image-size/large?v=v2&amp;amp;px=999" role="button" title="PeterCottontail.png" alt="PeterCottontail.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;A quick SAS ODS Graphics take on a cute &lt;A href="https://iheartcraftythings.com/easter-cards-for-kids.html" target="_self"&gt;Easter Cards for Kids&lt;/A&gt; project. Happy Easter, all!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;* Fun w/SAS ODS Graphics: Here Comes Polygons-and-Ellipses Peter Cottontail!
  Inspired by cute card at iheartcraftythings.com/easter-cards-for-kids.html;

data bunny;                   * Generate polygons for bunny's body and teeth;
polygon=1; x=1; y=3; output; x=4; output; y=0; output; x=1; output; x=.; y=.;  * Body;
polygon+1; xt=2; yt=1; output; xt=2.5; output; yt=.35; output; xt=2; output;   * Left tooth;
polygon+1; xt=2.5; yt=1; output; xt=3; output; yt=.35; output; xt=2.5; output; * Right tooth;  

ods graphics / reset height=5in width=5in antialias imagefmt=png;
proc template;                * Draw bunny (polygon and ellipse plots); 
define statgraph bunny;
begingraph / opaque=true border=false backgroundcolor=cxFDA3AC; * Rose backbround color;
layout overlayequated / opaque=true border=false backgroundcolor=cxFDA3AC wallcolor=cxFDA3AC WALLDISPLAY=(FILL)
       xaxisopts=(display=none offsetmin=0.05 offsetmax=0.05)
       yaxisopts=(display=none offsetmin=0.05 offsetmax=0.05);
entry "HAPPY EASTER!" / textattrs=(size=16pt color=white) valign=top; * Easter greetings;       
ellipseparm xorigin=2 yorigin=3 semimajor=.45 semiminor=1.75 slope=.15 /
            fillattrs=(color=cxE5E1D8) display=(fill); * Left outer ear (use slope to tilt);
ellipseparm xorigin=2 yorigin=3 semimajor=.25 semiminor=1.25 slope=.15 /
            fillattrs=(color=cxFEE6E4) display=(fill); * Left inner ear;   
ellipseparm xorigin=3 yorigin=3 semimajor=.45 semiminor=1.75 slope=-.15 /
            fillattrs=(color=cxE5E1D8) display=(fill); * Right outer ear; 
ellipseparm xorigin=3 yorigin=3 semimajor=.25 semiminor=1.25 slope=-.15 /
            fillattrs=(color=cxFEE6E4) display=(fill); * Right inner ear);
polygonplot x=x y=y id=polygon / fillattrs=(color=cxE5E2D9) display=(fill);
ellipseparm xorigin=2 yorigin=2 semimajor=.4 semiminor=.4 slope=0 /
            fillattrs=(color=white) display=(fill); * Left outer eye;
ellipseparm xorigin=2 yorigin=1.85 semimajor=.2 semiminor=.2 slope=0 /
            fillattrs=(color=black) display=(fill); * Left inner eye;                  
ellipseparm xorigin=3 yorigin=2 semimajor=.4 semiminor=.4 slope=0 /
            fillattrs=(color=white) display=(fill); * Right outer eye;
ellipseparm xorigin=3 yorigin=1.85 semimajor=.2 semiminor=.2 slope=0 /
            fillattrs=(color=black) display=(fill); * Right inner eye;
polygonplot x=xt y=yt id=polygon / outlineattrs=(color=black thickness=1pt) fillattrs=(color=white) display=(fill outline); * Teeth;           
ellipseparm xorigin=2.5 yorigin=1.1 semimajor=.8 semiminor=.4 slope=0 /
            fillattrs=(color=cxFEE6E6) display=(fill); * Nose; 
endlayout;
endGraph;
end;
 
proc sgrender data=bunny template=bunny; * Draw the chart!;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;1st Draft!&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="PeterCottontailBeforeColoring.png" style="width: 480px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/106362iFBEB5448E5F0A52A/image-size/large?v=v2&amp;amp;px=999" role="button" title="PeterCottontailBeforeColoring.png" alt="PeterCottontailBeforeColoring.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 28 Apr 2025 13:53:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Graphics-Programming/Fun-With-SAS-ODS-Graphics-Here-Comes-Polygons-and-Ellipses-Peter/m-p/964692#M25420</guid>
      <dc:creator>tc</dc:creator>
      <dc:date>2025-04-28T13:53:30Z</dc:date>
    </item>
    <item>
      <title>Re: Fun With SAS ODS Graphics: 2025 Academy Awards Best Picture Nominee Runtimes</title>
      <link>https://communities.sas.com/t5/Graphics-Programming/Fun-With-SAS-ODS-Graphics-2025-Academy-Awards-Best-Picture/m-p/960724#M25325</link>
      <description>&lt;P&gt;&lt;STRONG&gt;INPUT (Source: &lt;/STRONG&gt;&lt;A href="https://www.imdb.com/" target="_self"&gt;&lt;STRONG&gt;IMDB)&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="tc_0-1741011953804.png" style="width: 318px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/105106i2280F6BE74F042DC/image-size/medium?v=v2&amp;amp;px=400" role="button" title="tc_0-1741011953804.png" alt="tc_0-1741011953804.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 03 Mar 2025 14:28:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Graphics-Programming/Fun-With-SAS-ODS-Graphics-2025-Academy-Awards-Best-Picture/m-p/960724#M25325</guid>
      <dc:creator>tc</dc:creator>
      <dc:date>2025-03-03T14:28:39Z</dc:date>
    </item>
    <item>
      <title>Re: Fun With SAS ODS Graphics: 2025 Academy Awards Best Picture Nominee Runtimes</title>
      <link>https://communities.sas.com/t5/Graphics-Programming/Fun-With-SAS-ODS-Graphics-2025-Academy-Awards-Best-Picture/m-p/960631#M25323</link>
      <description>&lt;P&gt;No time to watch all the nominees? No problem! Clickable images in GitHub-hosted version of SAS ODS Graphics chart will take you to the 2025 Academy Awards Best Picture nominee trailers!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://tedconway.github.io/Misc/oscars2025.html" target="_self"&gt;https://tedconway.github.io/Misc/oscars2025.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://tedconway.github.io/Misc/oscars2025.html" target="_self"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Oscars2025Trailers.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/105075iF1394D577FF2DABF/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Oscars2025Trailers.png" alt="Oscars2025Trailers.png" /&gt;&lt;/span&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;HTML Version of Chart (clickable images link to YouTube trailers)&lt;/STRONG&gt;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;* Fun With SAS ODS Graphics: 2025 Academy Awards Best Picture Nominee Runtimes (Runtimes from IMDB)
  Inspired by "Here’s How Long It Takes to Watch All the 2025 Best Picture Nominees"
  https://www.thewrap.com/how-long-2025-oscars-best-picture-nominees-runtimes/;
                                     * Grab 2025 Best Picture Oscar nominee data from Excel (Movie, Length, Image Name);
proc import file='/home/ted.conway/Oscars2025/Oscars2025.xlsx' dbms=xlsx out=movies replace; 

data movies2;                        * Convert hours/minutes to minutes;
set movies;
minutes=sum(scan(compress(length,'hm'),1,' hm')*60,scan(compress(length,'hm'),2,' hm')); 

proc sort data=movies2; by minutes; * Display shortest ==&amp;gt; longest films;

data images;                         * Annotate chart with Best Picture nominee images (with clickable URLs to movie trailers) using SAS-provided macros;                                                     
%SGANNO;                             * Resize all images to same height, but display at a height that matches their runtime (minutes); 
%SGIMAGE (image="/home/ted.conway/Oscars2025/ACompleteUnknown.jpg",border="true",linecolor="white",drawspace="datavalue",imagescale="fitheight",xc1="A Complete Unknown",y1=141,height=120,heightunit="DATA",anchor="TOP",URL='https://www.youtube.com/watch?v=FdV-Cs5o8mc');
%SGIMAGE (image="/home/ted.conway/Oscars2025/Anora.jpg",           border="true",linecolor="white",drawspace="datavalue",imagescale="fitheight",xc1="Anora",             y1=139,height=120,heightunit="DATA",anchor="TOP",URL='https://www.youtube.com/watch?v=8m6UrWMl18M');
%SGIMAGE (image="/home/ted.conway/Oscars2025/Conclave.jpg",        border="true",linecolor="white",drawspace="datavalue",imagescale="fitheight",xc1="Conclave",          y1=120,height=120,heightunit="DATA",anchor="TOP",URL='https://www.youtube.com/watch?v=JX9jasdi3ic');
%SGIMAGE (image="/home/ted.conway/Oscars2025/DunePartTwo.jpg",     border="true",linecolor="white",drawspace="datavalue",imagescale="fitheight",xc1="Dune: Part Two",    y1=166,height=120,heightunit="DATA",anchor="TOP",URL='https://www.youtube.com/watch?v=Way9Dexny3w');
%SGIMAGE (image="/home/ted.conway/Oscars2025/EmiliaPerez.jpg",     border="true",linecolor="white",drawspace="datavalue",imagescale="fitheight",xc1="Emilia Pérez",      y1=132,height=120,heightunit="DATA",anchor="TOP",URL='https://www.youtube.com/watch?v=4h7j_EcZ5fU');
%SGIMAGE (image="/home/ted.conway/Oscars2025/ImStillHere.jpg",     border="true",linecolor="white",drawspace="datavalue",imagescale="fitheight",xc1="I'm Still Here",    y1=137,height=120,heightunit="DATA",anchor="TOP",URL='https://www.youtube.com/watch?v=gDunV808Yf4');
%SGIMAGE (image="/home/ted.conway/Oscars2025/NickelBoys.jpg",      border="true",linecolor="white",drawspace="datavalue",imagescale="fitheight",xc1="Nickel Boys",       y1=140,height=120,heightunit="DATA",anchor="TOP",URL='https://www.youtube.com/watch?v=8HZKgYknVN0');
%SGIMAGE (image="/home/ted.conway/Oscars2025/TheBrutalist.jpg",    border="true",linecolor="white",drawspace="datavalue",imagescale="fitheight",xc1="The Brutalist",     y1=214,height=120,heightunit="DATA",anchor="TOP",URL='https://www.youtube.com/watch?v=GdRXPAHIEW4');
%SGIMAGE (image="/home/ted.conway/Oscars2025/TheSubstance.jpg",    border="true",linecolor="white",drawspace="datavalue",imagescale="fitheight",xc1="The Substance",     y1=141,height=120,heightunit="DATA",anchor="TOP",URL='https://www.youtube.com/watch?v=LNlrGhBpYjc');
%SGIMAGE (image="/home/ted.conway/Oscars2025/Wicked.jpg",          border="true",linecolor="white",drawspace="datavalue",imagescale="fitheight",xc1="Wicked",            y1=160,height=120,heightunit="DATA",anchor="TOP",URL='https://www.youtube.com/watch?v=6COmYeLsz4c');
                                     * Generate chart of films/lengths (Step+Text+Needle plots);
ods html5 path='/home/ted.conway/Oscars2025' body='oscars2025.html' options(bitmap_mode="inline");
ods graphics / reset imagemap=on height=6in width=24in imagefmt=png noborder imagename='Oscars2025'; * Use SVG format for clicable web page;
proc sgplot data=movies2 sganno=images nowall noborder noautolegend ;
styleattrs backcolor=black;
inset "2025 Academy Awards Best Picture Nominee Runtimes" 
      "Click Image to View Trailer on YouTube" / textattrs=(color=white size=18pt weight=bold) position=topleft;
needle x=movie y=minutes / lineattrs=(thickness=4pt color=white); * Show a drop line from image to baseline ("lollipop" chart);
step x=movie y=minutes / justify=center lineattrs=(color=white thickness=2pt); * Step chart of time for each movie;
text x=movie y=minutes text=length / strip contributeoffsets=none pad=3 textattrs=(size=12pt color=white weight=bold) position=top; * Display time (hours and minutes);
xaxis display=(nolabel noticks noline) valueattrs=(color=white weight=bold size=12pt) offsetmin=.06 offsetmax=.06; * X-axis displays movie names in ascending runtime order;
yaxis display=(nolabel noticks noline) valueattrs=(color=white weight=bold size=12pt) values=(0  60 120 180 225) valuesdisplay=('0' '60' '120' '180' ' '); * Y-axis displays runtimes (minutes);
refline 0 60 120 180 / axis=y lineattrs=(color=grey) label=""; * Display reference lines for each hour; 
run;
ods html5 close;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sat, 01 Mar 2025 20:28:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Graphics-Programming/Fun-With-SAS-ODS-Graphics-2025-Academy-Awards-Best-Picture/m-p/960631#M25323</guid>
      <dc:creator>tc</dc:creator>
      <dc:date>2025-03-01T20:28:11Z</dc:date>
    </item>
    <item>
      <title>Fun With SAS ODS Graphics: 2025 Academy Awards Best Picture Nominee Runtimes</title>
      <link>https://communities.sas.com/t5/Graphics-Programming/Fun-With-SAS-ODS-Graphics-2025-Academy-Awards-Best-Picture/m-p/960594#M25321</link>
      <description>&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Oscars2025.png" style="width: 999px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/105058i75300772733E1C35/image-size/large?v=v2&amp;amp;px=999" role="button" title="Oscars2025.png" alt="Oscars2025.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Oscars are Sunday, so here's a SAS ODS Graphics annotated step+text+needle chart of the runtimes of the Best Picture nominees. &lt;EM&gt;The Wrap&lt;/EM&gt; &lt;A href="https://www.thewrap.com/how-long-2025-oscars-best-picture-nominees-runtimes/" target="_self"&gt;did the math&lt;/A&gt; and came up with a total of about 26-and-a-half hours, so there's still time to binge watch 'em all before the show!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;* Fun With SAS ODS Graphics: 2025 Academy Awards Best Picture Nominee Runtimes (Runtimes from IMDB)
  Inspired by "Here’s How Long It Takes to Watch All the 2025 Best Picture Nominees"
  https://www.thewrap.com/how-long-2025-oscars-best-picture-nominees-runtimes/;
                                     * Grab 2025 Best Picture Oscar nominee data from Excel (Movie, Length, Image Name);
proc import file='/home/ted.conway/Oscars2025/Oscars2025.xlsx' dbms=xlsx out=movies replace; 

data movies2;                        * Convert hours/minutes to minutes;
set movies;
minutes=sum(scan(compress(length,'hm'),1,' hm')*60,scan(compress(length,'hm'),2,' hm')); 

proc sort data=movies2; by minutes; * Display shortest ==&amp;gt; longest films;

data images;                         * Annotate chart with Best Picture nominee images using SAS-provided macros;                                                     
%SGANNO;                             * Resize all images to same height, but display at a height that matches their runtime (minutes); 
%SGIMAGE (image="/home/ted.conway/Oscars2025/ACompleteUnknown.jpg",border="true",linecolor="white",drawspace="datavalue",imagescale="fitheight",xc1="A Complete Unknown",y1=141,height=120,heightunit="DATA",anchor="TOP");
%SGIMAGE (image="/home/ted.conway/Oscars2025/Anora.jpg",           border="true",linecolor="white",drawspace="datavalue",imagescale="fitheight",xc1="Anora",             y1=139,height=120,heightunit="DATA",anchor="TOP");
%SGIMAGE (image="/home/ted.conway/Oscars2025/Conclave.jpg",        border="true",linecolor="white",drawspace="datavalue",imagescale="fitheight",xc1="Conclave",          y1=120,height=120,heightunit="DATA",anchor="TOP");
%SGIMAGE (image="/home/ted.conway/Oscars2025/DunePartTwo.jpg",     border="true",linecolor="white",drawspace="datavalue",imagescale="fitheight",xc1="Dune: Part Two",    y1=166,height=120,heightunit="DATA",anchor="TOP");
%SGIMAGE (image="/home/ted.conway/Oscars2025/EmiliaPerez.jpg",     border="true",linecolor="white",drawspace="datavalue",imagescale="fitheight",xc1="Emilia Pérez",      y1=132,height=120,heightunit="DATA",anchor="TOP");
%SGIMAGE (image="/home/ted.conway/Oscars2025/ImStillHere.jpg",     border="true",linecolor="white",drawspace="datavalue",imagescale="fitheight",xc1="I'm Still Here",    y1=137,height=120,heightunit="DATA",anchor="TOP");
%SGIMAGE (image="/home/ted.conway/Oscars2025/NickelBoys.jpg",      border="true",linecolor="white",drawspace="datavalue",imagescale="fitheight",xc1="Nickel Boys",       y1=140,height=120,heightunit="DATA",anchor="TOP");
%SGIMAGE (image="/home/ted.conway/Oscars2025/TheBrutalist.jpg",    border="true",linecolor="white",drawspace="datavalue",imagescale="fitheight",xc1="The Brutalist",     y1=214,height=120,heightunit="DATA",anchor="TOP");
%SGIMAGE (image="/home/ted.conway/Oscars2025/TheSubstance.jpg",    border="true",linecolor="white",drawspace="datavalue",imagescale="fitheight",xc1="The Substance",     y1=141,height=120,heightunit="DATA",anchor="TOP");
%SGIMAGE (image="/home/ted.conway/Oscars2025/Wicked.jpg",          border="true",linecolor="white",drawspace="datavalue",imagescale="fitheight",xc1="Wicked",            y1=160,height=120,heightunit="DATA",anchor="TOP");
                                     * Generate chart of films/lengths (Step+Text+Needle plots);
ods listing image_dpi=300 gpath='/home/ted.conway/Oscars2025'; * Increase resolution to 300 DPI;
ods graphics / reset height=6in width=24in imagefmt=png noborder imagename='Oscars2025';
proc sgplot data=movies2 sganno=images nowall noborder noautolegend ;
styleattrs backcolor=black;
inset "2025 Academy Awards Best Picture Nominee Runtimes" / textattrs=(color=white size=18pt weight=bold) position=topleft;
needle x=movie y=minutes / lineattrs=(thickness=4pt color=white); * Show a drop line from image to baseline ("lollipop" chart);
step x=movie y=minutes / justify=center lineattrs=(color=white thickness=2pt); * Step chart of time for each movie;
text x=movie y=minutes text=length / strip contributeoffsets=none pad=3 textattrs=(size=12pt color=white weight=bold) position=top; * Display time (hours and minutes);
xaxis display=(nolabel noticks noline) valueattrs=(color=white weight=bold size=12pt) offsetmin=.06 offsetmax=.06; * X-axis displays movie names in ascending runtime order;
yaxis display=(nolabel noticks noline) valueattrs=(color=white weight=bold size=12pt) values=(0  60 120 180 225) valuesdisplay=('0' '60' '120' '180' ' '); * Y-axis displays runtimes (minutes);
refline 0 60 120 180 / axis=y lineattrs=(color=grey) label=""; * Display reference lines for each hour; 
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;80% Zoom&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Oscars2025Snippet.png" style="width: 999px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/105061i92ADD54D0663FABE/image-size/large?v=v2&amp;amp;px=999" role="button" title="Oscars2025Snippet.png" alt="Oscars2025Snippet.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 01 Mar 2025 08:13:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Graphics-Programming/Fun-With-SAS-ODS-Graphics-2025-Academy-Awards-Best-Picture/m-p/960594#M25321</guid>
      <dc:creator>tc</dc:creator>
      <dc:date>2025-03-01T08:13:26Z</dc:date>
    </item>
  </channel>
</rss>

