DATA Step, Macro, Functions and more

Using macros to test different colors combinations for sgplot?

Accepted Solution Solved
Reply
Occasional Contributor
Posts: 14
Accepted Solution

Using macros to test different colors combinations for sgplot?

[ Edited ]

Hi SAS community!

 

I have a question about generating different color combinations for the sgplot. I know it might sound silly but it could really help me a lot!

 

The task is like that:

proc sgplot data= test;
series y=year x=banana /  lineattrs=(color=Red pattern=dot)
                          markerattrs=(color=Red symbol=circlefilled);
series y=year x=strawberry /  lineattrs=(color=black pattern=dot)
                          markerattrs=(color=black symbol=circlefilled);
series y=year x=grape /  lineattrs=(color=blue pattern=dot)
                          markerattrs=(color=blue symbol=circlefilled);
title	"production of fruit by year";
run;

The plot draws several series of lines,

and I JUST want to test for the color of banana line first, with color of red, then green , then blue, etc.etc, as well as the patterns...

I've tried %array and % do_over but cannot make it work...

 

 

Thanks a lot!

 


Accepted Solutions
Solution
‎03-09-2017 03:03 PM
Trusted Advisor
Posts: 1,554

Re: Using macros to test different colors combinations for sgplot?

Posted in reply to joseph626

1) Next is a documnentation of available color names in sas:

http://support.sas.com/publishing/authors/extras/62007_Appendix.pdf

 

2) You can run your code with a macro, suplying the color names to check:

%macro check_colors(colr1, colr2, colr3)
   proc sgplot data= test;
     series y=year x=banana /  lineattrs=(color=&colr1 pattern=dot)
                          markerattrs=(color=&colr1 symbol=circlefilled);
     series y=year x=strawberry /  lineattrs=(color=&colr2 pattern=dot)
                          markerattrs=(color=&colr2 symbol=circlefilled);
     series y=year x=grape /  lineattrs=(color=&colr3 pattern=dot)
                          markerattrs=(color=&colr3 symbol=circlefilled);
     title	"production of fruit by year";
  run;
%mend check_colors;
%check_colors(red, black, blue);  /* replace by any other set of 3 color names */

 

View solution in original post


All Replies
Solution
‎03-09-2017 03:03 PM
Trusted Advisor
Posts: 1,554

Re: Using macros to test different colors combinations for sgplot?

Posted in reply to joseph626

1) Next is a documnentation of available color names in sas:

http://support.sas.com/publishing/authors/extras/62007_Appendix.pdf

 

2) You can run your code with a macro, suplying the color names to check:

%macro check_colors(colr1, colr2, colr3)
   proc sgplot data= test;
     series y=year x=banana /  lineattrs=(color=&colr1 pattern=dot)
                          markerattrs=(color=&colr1 symbol=circlefilled);
     series y=year x=strawberry /  lineattrs=(color=&colr2 pattern=dot)
                          markerattrs=(color=&colr2 symbol=circlefilled);
     series y=year x=grape /  lineattrs=(color=&colr3 pattern=dot)
                          markerattrs=(color=&colr3 symbol=circlefilled);
     title	"production of fruit by year";
  run;
%mend check_colors;
%check_colors(red, black, blue);  /* replace by any other set of 3 color names */

 

☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 1 reply
  • 120 views
  • 1 like
  • 2 in conversation