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.
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
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)|
|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";
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.
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.
"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
Registration is open! SAS is returning to Vegas for an AI and analytics experience like no other! Whether you're an executive, manager, end user or SAS partner, SAS Innovate is designed for everyone on your team. Register for just $495 by 12/31/2023.
If you are interested in speaking, there is still time to submit a session idea. More details are posted on the website.
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.