Solved
N/A
Posts: 1

# Graph Legend Manipulation

Hello Everyone,

I was wondering if there was a way to rename the character names of variables directly in the legend. I have a scatterplot that looks great but the legend says "Indian" and "Arctic" with the corresponding symbols. Is there any way I can make the legend say "Indian Ocean" and "Arctic Ocean" directly on the graph?

Accepted Solutions
Solution
‎12-05-2011 04:19 PM
New Contributor
Posts: 3

## Graph Legend Manipulation

I would use legendlabel='Indian Ocean' as an option under seriesplot of your graph and the same for Arctic Ocean.

All Replies
Solution
‎12-05-2011 04:19 PM
New Contributor
Posts: 3

## Graph Legend Manipulation

I would use legendlabel='Indian Ocean' as an option under seriesplot of your graph and the same for Arctic Ocean.

SAS Employee
Posts: 1,031

## Graph Legend Manipulation

As a "best practice", I would recommend using a data-driven solution, rather than hard-coding the text.  If you hard-code text in the legend, then one day if/when the data changes, then the hard-coded legend will be wrong (which could go un-noticed and compromise the data-integrity of the graph).

You don't mention which proc you're using, so here's an example using traditional gplot...

Here's a plot with 'M' and 'F' in the legend:

legend1 label=none position=(bottom center);

proc gplot data=sashelp.class;

plot height*weight=sex / legend=legend1;

run;

Now, instead of 'M' and 'F', let's say we want 'Male' and 'Female' to show up in the legend.  You could either create a user-defined format that makes 'M' and 'F' show up as 'Male' and 'Female' ... or you could add an extra variable to the data, like so ...

data mod_class; set sashelp.class;
length mod_sex \$10;
if sex='M' then mod_sex='Male';
else if sex='F' then mod_sex='Female';
else mod_sex=sex;
run;

legend1 label=none position=(bottom center);
proc gplot data=mod_class;
plot height*weight=mod_sex / legend=legend1;
run;

🔒 This topic is solved and locked.