BookmarkSubscribeRSS Feed
n6
Quartz | Level 8 n6
Quartz | Level 8

Before the PROC GPLOT statement I'm putting symbol statements using the c= or color= option and using blue, green red, etc but no matter what it just gives me black lines.  I've created non-black lines on plots plenty of times in the past so I don't know why it won't do it this time.  Maybe I have some other options set that is trumping color=.  Any ideas are appreciated.

7 REPLIES 7
Reeza
Super User

Can you post your code? Also, what's your destination - HTML, PDF, RTF or Listing? I'm not sure if listing supports colours.

Does the following code produce a graph with coloured lines?

http://robslink.com/SAS/democd11/isabel1.sas

n6
Quartz | Level 8 n6
Quartz | Level 8

Your code does indeed produce colors for me.

As far as my code goes, it's a macro and before the PROC GPLOT this runs, which was given to me by someone else so I'm not sure what exactly it all does.

goptions reset   = global  

          device  = win     

          rotate  = landscape

          target  = winprtm 

          cback   = white   

          ctext   = black   

          gsfmode = replace 

          ftext   = swiss   

          gunit   = pct     

          hby     = 0.75    

          htitle  = 2.8     

          hsize   =  9 in   

          vsize   =  6 in   

          prompt;           

And here is the actual code that makes it plot.  I'm pretty sure the mere fact that it's in a macro isn't affecting things and that's why I didn't post the entire macro, along with the fact that it'd be very long if I did that.

axis1 order = 0 to 1 by 0.10                             
label = (h=3  a=90  r=0  "Probability of Survival")      

width = 3 value = (height = 3) offset = (0,0) minor = (n = 1);

axis2 order = 0 to 3650 by 500                  
label = (h = 3 "Days Survived") width = 2       

value = (height = 3) offset = (0,0) minor = (n = 1); 

symbol1 i=step1j  l=1   color=blue ; 

symbol2 i=step1j  l=1   color=red  ; 

symbol3 i=step1j  l=1   color=green; 

legend1 position=(left inside bottom)                              
across=1                                                           
down=4                                                             
label = (H = 3 "&GROUP_LAB" position=(top center))                 

value = (height=3 tick=1 "&TICK1"   tick=2 "&TICK2"   tick=3 "&TICK3"); 

proc gplot data=plot;       
plot surv_k1 * days         
surv_k2 * days         
surv_k3 * days / overlay
vaxis  = axis1              
haxis  = axis2              
legend = legend1 noframe;   

title1 h=5  "&GRP_NAME Survival";

run;                        
quit;                       
n6
Quartz | Level 8 n6
Quartz | Level 8

I just did mine again but with ODS HTML first and it opens up in the HTML window and it does indeed have colors.  But for whatever reason it is so big you can't see it all at once (and your code gave me a result like that too).

But in the regular SAS Graph window the lines are black.  In the past I've been able to put colored lines in there.  And I'm not sure I want to use HTML this time anyway, especially since in this particular project I've done a lot of work for the people and their current request is "do the same graph as before but just give us colors now."  So even if it is a good idea to use HTML in general I don't want to change horses mid-stream on this project.

That said, I personally just like looking at the regular output window and then perhaps if I finalize what I want outputting it to an RTF or HTML.  I think when I use HTML it creates files on my computer for it and I really don't need that when I'm working through the problem but aren't yet to the final results that I might want to send to a client.

n6
Quartz | Level 8 n6
Quartz | Level 8

So now I've tried just using goptions reset=all instead of that other list of options and it does give me colored lines in regular (non-HTML) graph window, but the graph has a bunch of other things weird about it that makes it no good, such as the names of the being so large that it takes up half the graph and the numbers being really big.  I guess it comes doing to figuring out what all those options do and which one is preventing the colors from showing up.

Reeza
Super User

Yup, guess and test Smiley Sad

Turn half of them off at a time and narrow it down.

Also - consider using PROC SGPLOT if you have the option - the graphics out of there are nicer in my opinion.

n6
Quartz | Level 8 n6
Quartz | Level 8

By the way, I'm not using ODS Graphics, although I do use it sometime with other  PROCs.  I would've assumed that with SAS Graph a graphics thing like ODS Graphics would be always on instead of specified.

ballardw
Super User

"Always on" means different things to different folks. The behavior has changed. In SAS 9.3 for instance if you have sgraphics on then every time you run proc freq you get histograms and different graphs for other procedures, which you may not want.

The addition of ODS complicates things with the older SAS Graph procs as well. They will generate a Listing output of the type around since SAS 6, and the specified ODS versions. EACH of those destinations may use a different ODS style to control appearance. To see if the style may be the cause of the only black output try this:

ods listing style=meadow;

ods html style=meadow;

your graphics procedure goes here

ods html close;

ods listing close;

and see if the two different results look more similar

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

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
  • 7 replies
  • 1719 views
  • 0 likes
  • 3 in conversation