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."
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!
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.
Ready to level-up your skills? Choose your own adventure.