How to edit a seaborn legend title and labels for figure-level functions

Viewed 226570

I've created this plot using Seaborn and a pandas dataframe (data):

enter image description here

My code:

g = sns.lmplot('credibility', 'percentWatched', data=data, hue = 'millennial', markers = ["+", "."], x_jitter = True, y_jitter = True, size=5)
g.set(xlabel = 'Credibility Ranking\n ← Low       High  →', ylabel = 'Percent of Video Watched [%]')

You may notice the plot's legend title is simply the variable name ('millennial') and the legend items are the variable's values (0, 1). How can I edit the legend's title and labels? Ideally, the legend's title would be 'Generation' and the labels would be "Millennial" and "Older Generations"

2 Answers

Took me a while to read through the above. This was the answer for me:

import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset("tips")

g = sns.lmplot(
    x="total_bill", 
    y="tip", 
    hue="smoker", 
    data=tips,  
    legend=False
)

plt.legend(title='Smoker', loc='upper left', labels=['Hell Yeh', 'Nah Bruh'])
plt.show(g)

Reference this for more arguments: matplotlib.pyplot.legend

enter image description here

Related