BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
joseph626
Obsidian | Level 7

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!

 

1 ACCEPTED SOLUTION

Accepted Solutions
Shmuel
Garnet | Level 18

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

1 REPLY 1
Shmuel
Garnet | Level 18

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 */

 

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

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

Browse our catalog!

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