隐藏Seaborn Pairplot中的图例

avi*_*iss 7 matplotlib python-3.x seaborn

我想隐藏Seaborn对偶图例。官方文档没有提及关键字图例。我尝试使用的所有方法plt.legend均无效。请提出最佳的前进方式。谢谢!

import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

test = pd.DataFrame({
    'id': ['1','2','1','2','2','6','7','7','6','6'],
    'x': [123,22,356,412,54,634,72,812,129,110],
    'y':[120,12,35,41,45,63,17,91,112,151]})
sns.pairplot(x_vars='x', y_vars="y", 
                 data=test,
                 hue = 'id', 
                 height = 3)
Run Code Online (Sandbox Code Playgroud)

小智 29

由于_legend.remove()方法不适用于其他一些seaborn图,那么:

plt.legend([],[], frameon=False)
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你!“g._legend.remove()”在 sns.boxplot 上不起作用 (2认同)

And*_*ner 10

如果要删除所有子图上的图例,可以使用以下代码。

fig, axes = plt.subplots(2,5)

# ...

for ax in axes:
    ax.legend([],[], frameon=False)
Run Code Online (Sandbox Code Playgroud)


Dav*_*idG 7

使用时需要返回Seabron Pairgrid对象pairplot,然后可以使用来访问Pairgrid的图例._legend。然后只需调用remove()

import seaborn as sns

test = pd.DataFrame({
    'id': ['1','2','1','2','2','6','7','7','6','6'],
    'x': [123,22,356,412,54,634,72,812,129,110],
    'y':[120,12,35,41,45,63,17,91,112,151]})

g = sns.pairplot(x_vars='x', y_vars="y", data=test, hue = 'id', height = 3)
g._legend.remove()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

  • 使用`._legend`对我不起作用,并抛出`AttributeError`。然而,使用[.legend_]可以作为[在此答案中](/sf/answers/2669572671/)。 (19认同)
  • 不。对我来说,使用“pairplot”我的答案有效。链接的答案使用“stripplot”,它返回“axes”对象,而不是“pairplot”返回的“PairGrid”对象,因此答案不会相同。 (3认同)
  • `legend_.remove()` 对我来说适用于 Seaborn 线图 (3认同)

Phi*_*hil 7

You can also just stay on the surface roads, so to speak.

ax.get_legend().set_visible(False)
Run Code Online (Sandbox Code Playgroud)