web-dev-qa-db-fra.com

Comment déplacer la légende à l'extérieur d'un nuage de points marin?

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)

Lorsque je lance ceci, j'obtiens le graphique ci-dessous.

enter image description here

Je veux déplacer la légende en dehors de l'intrigue. J'ai googlé et essayé ce qui suit

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

Mais je ne reçois aucune sortie. De plus, je ne peux pas comprendre comment l'objet plt est connecté à mon objet sns

J'utilise Jupyter Notebook, Python 3.6 et Seaborn 0.9.0.

5
Vinay

S'il vous plaît essayez ce qui suit:

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

Vous pouvez changer le premier nombre en négatif pour mettre votre légende sur le côté gauche si vous le souhaitez.

Si vous utilisez Jupyter IDE, vous devez mettre les deux lignes de votre code dans la même cellule et les exécuter ensemble pour obtenir la sortie. De plus, il n'existe pas d'objet sns. La plupart des fonctions de seaborn renvoient un objet matplotlib Axes où vous pouvez utiliser toutes les méthodes associées à l'objet Axes, comme celle (c'est-à-dire la fonction .legend()) que vous utilisez ici.

7
steven