A KISS SAS ODS Graphics take on a lovely 2019 Christmas card by Normann Copenhagen. Happy Holidays, all!
* Fun With SAS ODS Graphics: Paint-By-Numbers Xmas Tree
Inspired by Normann Copenhagen card at dezeen.com/2019/12/24/christmas-cards-architects-designers-2019;
data; * "Tree" is pyramid of numbers 1-25, * = new line);
retain x 0 y 0 tree '1*234*56789*1011213*1415161718*192021222324*25';
ods graphics / height=5in width=5in; * Plot the "tree" (text plot);
proc sgplot aspect=1 nowall noborder pad=0;
styleattrs backcolor=cx1C5240; * Xmas tree green;
text x=x y=y text=tree / splitchar='*' splitpolicy=splitalways strip
textattrs=(color=white weight=bold size=36pt);
xaxis display=none; yaxis display=none; * Suppress axes;
run;
PRIOR TO "TOUCH-UP"
Just follow @tc 's post.
Merry Christmas to all and Happy New Year !
data x;
do x=0.01 to 80 by 0.1;
y1=sin(x) /x**1.5; x11=x+30;y11=0.8*y1; x21=x+60;y21=0.6*y1; x31=x+90;y31=0.4*y1;x41=x+120;y41=0.2*y1;
y2=sin(x+1)/x**1.5; x12=x+30;y12=0.8*y2; x22=x+60;y22=0.6*y2; x32=x+90;y32=0.4*y2;x42=x+120;y42=0.2*y2;
y3=sin(x+2)/x**1.5; x13=x+30;y13=0.8*y3; x23=x+60;y23=0.6*y3; x33=x+90;y33=0.4*y3;x43=x+120;y43=0.2*y3;
y4=sin(x+3)/x**1.5; x14=x+30;y14=0.8*y4; x24=x+60;y24=0.6*y4; x34=x+90;y34=0.4*y4;x44=x+120;y44=0.2*y4;
y5=sin(x+4)/x**1.5; x15=x+30;y15=0.8*y5; x25=x+60;y25=0.6*y5; x35=x+90;y35=0.4*y5;x45=x+120;y45=0.2*y5;
if x>10 then output;
end;
call missing(of _all_);
star_x=0;star_y=190;output;
call missing(of _all_);
bar_x=0;bar_y=0;marker='|';output;
run;
proc sgplot data=x noautolegend noborder;
scatter x=bar_x y=bar_y/markerchar=marker markercharattrs=(size=30 color=black) dataskin=pressed;
series y=x x=y1/lineattrs=(color=green) ;
series y=x x=y2/lineattrs=(color=green) ;
series y=x x=y3/lineattrs=(color=green) ;
series y=x x=y4/lineattrs=(color=green) ;
series y=x x=y5/lineattrs=(color=green) ;
series y=x11 x=y11/lineattrs=(color=green) ;
series y=x12 x=y12/lineattrs=(color=green) ;
series y=x13 x=y13/lineattrs=(color=green) ;
series y=x14 x=y14/lineattrs=(color=green) ;
series y=x15 x=y15/lineattrs=(color=green) ;
series y=x21 x=y21/lineattrs=(color=green) ;
series y=x22 x=y22/lineattrs=(color=green) ;
series y=x23 x=y23/lineattrs=(color=green) ;
series y=x24 x=y24/lineattrs=(color=green) ;
series y=x25 x=y25/lineattrs=(color=green) ;
series y=x31 x=y31/lineattrs=(color=green) ;
series y=x32 x=y32/lineattrs=(color=green) ;
series y=x33 x=y33/lineattrs=(color=green) ;
series y=x34 x=y34/lineattrs=(color=green) ;
series y=x35 x=y35/lineattrs=(color=green) ;
series y=x41 x=y41/lineattrs=(color=green) ;
series y=x42 x=y42/lineattrs=(color=green) ;
series y=x43 x=y43/lineattrs=(color=green) ;
series y=x44 x=y44/lineattrs=(color=green) ;
series y=x45 x=y45/lineattrs=(color=green) ;
scatter x=star_x y=star_y/markerattrs=(symbol=starfilled size=40 color=gold) dataskin=pressed;
xaxis display=none;
yaxis display=none;
run;
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9.
Early bird rate extended! Save $200 when you sign up by March 31.
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.