Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to move legend to outside of a seaborn scatterplot? [duplicate]

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
sns.set(style="darkgrid")

g = sns.scatterplot(x="Area", y="Rent/Sqft", hue="region", style="availability", data=df)

When I run this I get the below plot.

enter image description here

I want to move the legend outside of plot. I googled and tried the following

g.legend(loc='right', bbox_to_anchor=(1.25, 0.5), ncol=1)
plt.show()

But I don't get any output. Moreover, I can't understand how the object plt is connected to my sns object

I am using Jupyter Notebook, Python 3.6 and Seaborn 0.9.0.

like image 786
Vinay Avatar asked Dec 11 '18 23:12

Vinay


1 Answers

Please try the following:

g.legend(loc='center left', bbox_to_anchor=(1.25, 0.5), ncol=1)

You can change the first number to negative to put your legend on the left side if you want.

If you're using Jupyter IDE, you need to put both lines of your code in the same cell and run them together to get the output. In addition, there is no such thing as sns object. Most of the functions in seaborn return a matplotlib Axes object where you can use all the methods associated with the Axes object, like the one (i.e., .legend()) you are using here.

like image 68
steven Avatar answered Oct 27 '22 20:10

steven