BookmarkSubscribeRSS Feed
einstein
Quartz | Level 8

Using Proc GPLOT I have a line graph showing number of prescriptions by drug type over several years.  Each graph is recreated for each state.  

 

However, I can't seem to get the colors to remain consistent for each drug when I replicate the graph for each state.

Is there anyway to indicate if the drug='Ibuprofen' then the line color should be green, etc.  I can't seem to find an option to do that. 

 

Here's the code I used:

%_eg_conditional_dropds(WORK.SORTTempTableSorted);
SYMBOL1
INTERPOL=JOIN
HEIGHT=10pt
VALUE=NONE
LINE=1
WIDTH=2
CV = _STYLE_

;
SYMBOL2
INTERPOL=JOIN
HEIGHT=10pt
VALUE=NONE
LINE=1
WIDTH=2
CV = _STYLE_
;
SYMBOL3
INTERPOL=JOIN
HEIGHT=10pt
VALUE=NONE
LINE=1
WIDTH=2
CV = _STYLE_
;

Legend1
FRAME
;
Axis1
STYLE=1
WIDTH=1
MINOR=NONE

;
Axis2
STYLE=1
WIDTH=1
MINOR=NONE
;

PROC SQL;
CREATE VIEW WORK.SORTTempTableSorted AS
SELECT statecd, hcv_rc ,Year_qtr ,
SUM(num_presc) AS num_presc_SUM 
FROM HCV.HCVX
GROUP BY statecd, hcv_rc,Year_qtr
ORDER BY statecd, hcv_rc,Year_qtr;
QUIT;

PROC GPLOT DATA = WORK.SORTTempTableSorted;
PLOT num_presc_SUM * Year_qtr =hcv_rc
/
VAXIS=AXIS1
HAXIS=AXIS2
FRAME SKIPMISS
LEGEND=LEGEND1
;
by statecd;
RUN; QUIT;

 

Thanks!

 

5 REPLIES 5
DanH_sas
SAS Super FREQ

The best way to do this is to use PROC SGPLOT with an attributes map.  If you look at pages 8-9 of my paper (see the link below), you will see an example this. For your case, your code will look something like this:

 

data attrmap;
retain id "myid";
length linestyleelement $ 10 markerstyleelement $ 10;
input value $ linestyleelement $ markerstyleelement $;
cards;
drug1 GraphData1 GraphData1
drug2 GraphData2 GraphData2
drug3 GraphData3 GraphData3
;
run;

proc sgplot data=work.SORTEDTempTableSorted dattrmap=attrmap;
   series x=year_qtr y=num_presc_sum / group=hcv_rc attrid=myid;
run;



Hope this helps!

Dan

 

 

https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwim6tzK__rM...

einstein
Quartz | Level 8

Thanks!  This was actually quite helpful!

 

ballardw
Super User

Some times it helps to make sure that all values of your grouping variables such as hvc_rc appear within others (your statecd) even if the Y value is missing.

The attributes is preferred but if you stick with GPLOT or have an older version of SAS such as 9.2 then the added value will help, especially when sorted.

einstein
Quartz | Level 8
Thanks Rick! This was also super helpful!

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

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.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 5 replies
  • 1014 views
  • 0 likes
  • 4 in conversation