I'm using GTL to make several bubble plots. I am making a different plot for a different adverse event where the bubbles are color coded by AE grade. When I subset my data to certain AE terms, not all grades are represented. For example, when I run the Fatigue plot, Grade 1, Grade 2, and Grade 3 show up, but Grade 4 is not in the legend because there are no Grade 4 Fatigue in my data. There are some graphs that only show Grade 1 in the legend. I just want the Grade 4 to appear in the legend so that all legends are consistent across all plots.
Is there a way in the DISCRETELEGEND statement to specify what values to display (i.e., display all 4 grades)? I am sure I have done this in the past, but I can't find any sample code. Google is also not being much of a help. I am trying to not run some kind of massive shell table that has all possible combinations of subject ID, AE term, and grade level and then merge in my actual data to have a bunch of missing values. Can I avoid doing that?
If you are using an inline DISCRETEATTRMAP statement inside GTL, you can set the option DISCRETELEGENDENTRYPOLICY=ATTRMAP to get all values from the attrmap into the legend associated with the plot statement, in the order they are provided in the attr map. If you are using an external DataSet based DAttrMap, you can set the SHOW column to "ATTRMAP".
If you are using an inline DISCRETEATTRMAP statement inside GTL, you can set the option DISCRETELEGENDENTRYPOLICY=ATTRMAP to get all values from the attrmap into the legend associated with the plot statement, in the order they are provided in the attr map. If you are using an external DataSet based DAttrMap, you can set the SHOW column to "ATTRMAP".
How easy was that! Luckily, I am using DISCRETEATTRMAP, so this was probably the easiest fix. Thank you so much. There are so many options out there that I usually don't even know what I'm looking for.
For one way to handle this situation, see the article "A simple trick to include (and order!) all categories in SGPLOT legends."
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 16. Read more here about why you should contribute and what is in it for you!
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.
Select SAS Training centers are offering in-person courses. View upcoming courses for: