如何将图例移动到海图散点图之外?

Vin*_*nay 4 python matplotlib scatter-plot seaborn

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)
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我得到以下图。

在此处输入图片说明

我想将图例移出情节。我用谷歌搜索并尝试了以下

g.legend(loc='right', bbox_to_anchor=(1.25, 0.5), ncol=1)
plt.show()
Run Code Online (Sandbox Code Playgroud)

但是我没有任何输出。而且,我无法理解对象plt如何连接到我的sns对象

我正在使用Jupyter Notebook,Python 3.6和Seaborn 0.9.0。

ste*_*ven 5

请尝试以下操作:

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

您可以根据需要将第一个数字更改为负数,以将图例放在左侧。

如果您使用的是Jupyter IDE,则需要将代码的两行放在同一单元格中,然后将它们一起运行以获取输出。另外,没有像sns对象这样的东西。seaborn中的大多数函数返回一个matplotlib Axes对象,您可以在其中使用与该Axes对象关联的所有方法,例如.legend()您在此处使用的一种方法(即)。

  • 如果你不指定`loc`,它将是`"best"`,使得位置不可预测。反过来,这意味着您应该**始终**使用“loc”进行非自动展示位置。你读过我在问题下面的评论了吗? (2认同)