<?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>topic Re: Fun with SAS ODS Graphics: 5x7 LED matrix display-inspired 'iconic' Labor Day greeting in Graphics Programming</title>
    <link>https://communities.sas.com/t5/Graphics-Programming/Fun-with-SAS-ODS-Graphics-5x7-LED-matrix-display-inspired-iconic/m-p/681936#M20459</link>
    <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/4628"&gt;@tc&lt;/a&gt;&amp;nbsp;- Nice!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now for the dinosaur version:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;filename ft15f001 temp;
proc explode;
parmcards;
  HAPPY
  LABOR
  DAY
;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Doc link here:&amp;nbsp;&lt;A href="https://support.sas.com/documentation/onlinedoc/base/91/explode.pdf" target="_self"&gt;Explode&lt;/A&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="screenshot33.JPG" style="width: 443px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/49051i73E9328639EFE5D3/image-size/large?v=v2&amp;amp;px=999" role="button" title="screenshot33.JPG" alt="screenshot33.JPG" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
    <pubDate>Mon, 07 Sep 2020 01:44:25 GMT</pubDate>
    <dc:creator>SASKiwi</dc:creator>
    <dc:date>2020-09-07T01:44:25Z</dc:date>
    <item>
      <title>Fun with SAS ODS Graphics: 5x7 LED matrix display-inspired 'iconic' Labor Day greeting</title>
      <link>https://communities.sas.com/t5/Graphics-Programming/Fun-with-SAS-ODS-Graphics-5x7-LED-matrix-display-inspired-iconic/m-p/681935#M20458</link>
      <description>&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Happy Labor Day" style="width: 999px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/49045i706A2C2D034A715E/image-size/large?v=v2&amp;amp;px=999" role="button" title="laborday.png" alt="Happy Labor Day" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Happy Labor Day&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Q.&lt;/STRONG&gt; What do you get when you combine labor-related icons from &lt;A href="https://thenounproject.com" target="_self"&gt;The Noun Project&lt;/A&gt; with &lt;A href="https://www.ccsinfo.com/forum/viewtopic.php?p=24141#24141" target="_self"&gt;5x7 LED mappings&lt;/A&gt; from a hobbyist's C code? &lt;STRONG&gt;A.&lt;/STRONG&gt; An 'iconic' Labor Day greeting. Enjoy the long weekend!&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="Happy Labor Day" style="width: 200px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/49047i9698DE0B17441A13/image-size/small?v=v2&amp;amp;px=200" role="button" title="laborday.png" alt="Happy Labor Day" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Happy Labor Day&lt;/span&gt;&lt;/span&gt;&amp;nbsp; &amp;nbsp;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Give Me An &amp;quot;H&amp;quot;!" style="width: 143px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/49048i5346FD7B5098A6F7/image-size/small?v=v2&amp;amp;px=200" role="button" title="H.png" alt="Give Me An &amp;quot;H&amp;quot;!" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Give Me An "H"!&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Construction Worker" style="width: 200px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/49049iFE4B3B75EB033E2E/image-size/small?v=v2&amp;amp;px=200" role="button" title="noun_construction worker_1200551.png" alt="Construction Worker" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Construction Worker&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;CODE&lt;/STRONG&gt;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;* Fun with SAS ODS Graphics: 5x7 LED matrix display-inspired 'iconic' Labor Day greeting
  5X7 LED matrix character mapping courtesy by "gerryc" ccsinfo.com/forum/viewtopic.php?p=24141#24141 
  Labor-related icon thumbnails from the Noun Project thenounproject.com;

*==&amp;gt; 1. Get x/y coordinates of "on" points from 5x7 LED hex alphabet mapping (found in a C program);  

data LED5x7(keep=letter x y);
length letter $ 1.;
input;
letter=scan(_infile_,-1);              * Letter is at end of each input record;
do y=1 to 7;                           * One hex constant represents each display line;        
  bits=put(input(substr(_infile_,7+(y-1)*6,2),$hex2.),$binary8.);
  do i=4 to 8;                         * Rightmost 5 bits of each contant indicate which points are "on" in each line;
    x=i-3;
    if substr(bits,i,1) then output;   * Only need x/y pairs of points that are "on";
  end;
end;
datalines; /* C code snippet w/LED character mapping - rightmost 5 bits of each constant indicate "on" bits for eachline */
   {0x04, 0x0a, 0x11, 0x11, 0x1f, 0x11, 0x11,}   // 0x41, A
   {0x1e, 0x11, 0x11, 0x1e, 0x11, 0x11, 0x1e,}   // 0x42, B
   {0x0e, 0x11, 0x10, 0x10, 0x10, 0x11, 0x0e,}   // 0x43, C
   {0x1e, 0x09, 0x09, 0x09, 0x09, 0x09, 0x1e,}   // 0x44, D
   {0x1f, 0x10, 0x10, 0x1c, 0x10, 0x10, 0x1f,}   // 0x45, E
   {0x1f, 0x10, 0x10, 0x1f, 0x10, 0x10, 0x10,}   // 0x46, F
   {0x0e, 0x11, 0x10, 0x10, 0x13, 0x11, 0x0f,}   // 0x37, G
   {0x11, 0x11, 0x11, 0x1f, 0x11, 0x11, 0x11,}   // 0x48, H
   {0x0e, 0x04, 0x04, 0x04, 0x04, 0x04, 0x0e,}   // 0x49, I
   {0x1f, 0x02, 0x02, 0x02, 0x02, 0x12, 0x0c,}   // 0x4a, J
   {0x11, 0x12, 0x14, 0x18, 0x14, 0x12, 0x11,}   // 0x4b, K
   {0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1f,}   // 0x4c, L
   {0x11, 0x1b, 0x15, 0x11, 0x11, 0x11, 0x11,}   // 0x4d, M
   {0x11, 0x11, 0x19, 0x15, 0x13, 0x11, 0x11,}   // 0x4e, N
   {0x0e, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0e,}   // 0x4f, O
   {0x1e, 0x11, 0x11, 0x1e, 0x10, 0x10, 0x10,}   // 0x50, P
   {0x0e, 0x11, 0x11, 0x11, 0x15, 0x12, 0x0d,}   // 0x51, Q
   {0x1e, 0x11, 0x11, 0x1e, 0x14, 0x12, 0x11,}   // 0x52, R
   {0x0e, 0x11, 0x10, 0x0e, 0x01, 0x11, 0x0e,}   // 0x53, S
   {0x1f, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,}   // 0x54, T
   {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0e,}   // 0x55, U
   {0x11, 0x11, 0x11, 0x11, 0x11, 0x0a, 0x04,}   // 0x56, V
   {0x11, 0x11, 0x11, 0x15, 0x15, 0x1b, 0x11,}   // 0x57, W
   {0x11, 0x11, 0x0a, 0x04, 0x0a, 0x11, 0x11,}   // 0x58, X
   {0x11, 0x11, 0x0a, 0x04, 0x04, 0x04, 0x04,}   // 0x59, Y
   {0x1f, 0x01, 0x02, 0x04, 0x08, 0x10, 0x1f,}   // 0x5a, Z
   ;

*==&amp;gt; 2. Get message to be displayed;  

data message(keep=n letter);
input word $char5.;
do i=1 to 5;                          * Max of 5 characters wide;
  n+1;                                * Letter sequence number;
  letter=substr(word,i,1);
  output;
end;  
datalines;
HAPPY
LABOR 
 DAY
;
*==&amp;gt; 3. Merge letters in message with the x/y points that represent them;  

proc sql;                            
create table message5x7 as 
select m.n, m.letter,                 /* Force x/y points of spaces outside of visible chart range (99, 99) */ 
case when l.letter is null then 99 else l.x end as x, 
case when l.letter is null then 99 else l.y end as y
from message m left join LED5x7 l on m.letter=l.letter
order by m.n, y, x;

data message5x7icon;                  * Assign a labor-related icon to each point;
set message5x7;
icon=mod(_n_-1,20)+1;                 * One of twenty icons;


*==&amp;gt; 5. Macro to assign 20 labor-related images (jobs) to sympbols for use as markers in scatter plots;

%let datasymbols=;                    
%macro gensymbols;
%do j=1 %to 20;                       * 20 labor-related thumbnail icons;
  %let img=%scan(attorney carpenter cashier constructionworker cook customerservice delivery doctor driver farmer 
                 firefighter mailman mechanic officeworker programmer scientist security soldier teacher truckdriver,&amp;amp;j);
  symbolimage name=&amp;amp;img               
              image="/folders/myfolders/laborday/&amp;amp;img..png";
  %let datasymbols=&amp;amp;datasymbols &amp;amp;img;
%end; 
%mend;

*==&amp;gt; 6. Display message using panel of scatter charts (1 chart per letter)
        Each letter is a 5x7 LED-like scatter chart of labor-related icons;  

ods _all_ close;
ods html body='/folders/myfolders/work/laborday.htm' gpath='/folders/myfolders/work' image_dpi=300;
ods graphics / reset imagename="laborday" height=7.5in width=7.5in attrpriority=none antialias outputfmt=png;
proc sgpanel data=message5x7icon noautolegend;
panelby n / columns=5 noborder novarname noheader spacing=8;
%gensymbols;
styleattrs datasymbols=(&amp;amp;datasymbols);
scatter x=x y=y / group=icon markerattrs=(size=20pt);
colaxis display=none min=.5 max=5.5 offsetmin=0 offsetmax=0 thresholdmin=0 thresholdmax=0;
rowaxis display=none min=.5 max=7.5 reverse offsetmin=0 offsetmax=0 thresholdmin=0 thresholdmax=0;
refline .5 to 5.5 by 1 / axis=x lineattrs=(color=gray);
refline .5 to 7.5 by 1 / axis=y lineattrs=(color=gray);
run;
ods html close;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Credits:&lt;/STRONG&gt; Icons are small thumbnails of larger images available at &lt;A href="https://thenounproject.com" target="_self"&gt;The Noun Project:&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="LaborIcons.JPG" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/49050iCB0965496306A1E2/image-size/medium?v=v2&amp;amp;px=400" role="button" title="LaborIcons.JPG" alt="LaborIcons.JPG" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Doctor By Adrien Coquet, FR &lt;BR /&gt;truck driver By Gan Khoon Lay&lt;BR /&gt;Teacher By arif fajar yulianto, ID &lt;BR /&gt;Farmer By Luis Prado, US &lt;BR /&gt;Office By Alexander Skowalsky, HU &lt;BR /&gt;Mailman By Gerald Wildmoser, DE &lt;BR /&gt;cooking By Alice Design &lt;BR /&gt;security officer By throwaway icons &lt;BR /&gt;retailer By Gan Khoon Lay &lt;BR /&gt;Mechanic By Mask Icon, ID &lt;BR /&gt;pizza delivery By Luis Prado, US &lt;BR /&gt;Scientist By MHD AZMI DWIPRANATA, ID &lt;BR /&gt;Carpenter By Dan Hetteix, US &lt;BR /&gt;Firefighter By Joshua Jones, GB &lt;BR /&gt;soldier By Simon Child, GB &lt;BR /&gt;attorney By ProSymbols, US &lt;BR /&gt;computer programmer By Aneeque Ahmed &lt;BR /&gt;customer service By Wilson Joseph &lt;BR /&gt;construction worker By Wilson Joseph&lt;BR /&gt;Driver By jauhari, MY&lt;/P&gt;</description>
      <pubDate>Mon, 07 Sep 2020 01:27:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Graphics-Programming/Fun-with-SAS-ODS-Graphics-5x7-LED-matrix-display-inspired-iconic/m-p/681935#M20458</guid>
      <dc:creator>tc</dc:creator>
      <dc:date>2020-09-07T01:27:00Z</dc:date>
    </item>
    <item>
      <title>Re: Fun with SAS ODS Graphics: 5x7 LED matrix display-inspired 'iconic' Labor Day greeting</title>
      <link>https://communities.sas.com/t5/Graphics-Programming/Fun-with-SAS-ODS-Graphics-5x7-LED-matrix-display-inspired-iconic/m-p/681936#M20459</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/4628"&gt;@tc&lt;/a&gt;&amp;nbsp;- Nice!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now for the dinosaur version:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;filename ft15f001 temp;
proc explode;
parmcards;
  HAPPY
  LABOR
  DAY
;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Doc link here:&amp;nbsp;&lt;A href="https://support.sas.com/documentation/onlinedoc/base/91/explode.pdf" target="_self"&gt;Explode&lt;/A&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="screenshot33.JPG" style="width: 443px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/49051i73E9328639EFE5D3/image-size/large?v=v2&amp;amp;px=999" role="button" title="screenshot33.JPG" alt="screenshot33.JPG" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 07 Sep 2020 01:44:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Graphics-Programming/Fun-with-SAS-ODS-Graphics-5x7-LED-matrix-display-inspired-iconic/m-p/681936#M20459</guid>
      <dc:creator>SASKiwi</dc:creator>
      <dc:date>2020-09-07T01:44:25Z</dc:date>
    </item>
    <item>
      <title>Re: Fun with SAS ODS Graphics: 5x7 LED matrix display-inspired 'iconic' Labor Day greeting</title>
      <link>https://communities.sas.com/t5/Graphics-Programming/Fun-with-SAS-ODS-Graphics-5x7-LED-matrix-display-inspired-iconic/m-p/682055#M20461</link>
      <description>&lt;P&gt;Shades of custom character sets from the days of 9-pin and similar impact printers.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Fun.&lt;/P&gt;</description>
      <pubDate>Mon, 07 Sep 2020 18:55:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Graphics-Programming/Fun-with-SAS-ODS-Graphics-5x7-LED-matrix-display-inspired-iconic/m-p/682055#M20461</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2020-09-07T18:55:32Z</dc:date>
    </item>
  </channel>
</rss>

