Seaborn.move_legend() 方法

图表或绘图中的图例是帮助/解释如何解释/理解图表的页面或图表的一部分。 Seaborn.move_legend() 方法用于将图例重新创建到新位置。

因此,您无法访问 Matplotlib 图例的位置参数,尽管顾名思义此方法移动了图例,但它实际上复制了图例的信息,在新位置重新创建图例并删除旧图例。

语法

以下是 seaborn.move_legend() 方法的语法 −

seaborn.move_legend(obj, loc, **kwargs)

参数

move_legend() 方法的参数如下所述。

S.No 名称和描述
1 Obj

这是与绘图关联的对象。

2 Loc

这个参数接受一个字符串或一个整数,它是位置参数。

3 Kwargs

可以传递其他参数。

loc参数取center right, center left, upper right, upper left, lower left, lower right, right, lower center, upper center, center等值。 其他可以传递的 kwargs 是 matplotlib 图例方法的一部分。

要了解如何使用它,我们需要画图,为此我们必须从库中导入内置数据集。

让我们在继续开发绘图之前加载 seaborn 库和数据集。


载入seaborn 库

要加载或导入 seaborn 库,可以使用以下代码行。

Import seaborn as sns

加载数据集

在本文中,我们将使用 seaborn 库中内置的 Titanic 数据集。 以下命令用于加载数据集。

titanic=sns.load_dataset("titanic")

下面提到的命令用于查看数据集中的前 5 行。 这使我们能够了解哪些变量可用于绘制图形。

titanic.head()

以下是上面这段代码的输出。

index,survived,pclass,sex,age,sibsp,parch,fare,embarked,class,who,adult_male,deck,embark_town,alive,alone
0,0,3,male,22.0,1,0,7.25,S,Third,man,true,NaN,Southampton,no,false
1,1,1,female,38.0,1,0,71.2833,C,First,woman,false,C,Cherbourg,yes,false
2,1,3,female,26.0,0,0,7.925,S,Third,woman,false,NaN,Southampton,yes,true

既然我们已经加载了数据集,我们将探索几个例子。

示例 1

在此示例中,我们将了解如何使用 move_legend() 方法来更改图例的位置。 在这个例子中,我们将传递 loc 项的一个位置,然后观察图例在显示的图中如何变化。

import seaborn as sns
import matplotlib.pyplot as plt
titanic=sns.load_dataset("titanic")
titanic.head()
ax = sns.histplot(titanic, x="age", hue="who")
sns.move_legend(ax, "center left")
plt.show()

输出

产生的输出如下,

seaborn_move_legend_method

示例 2

在这个例子中,我们将图例放在图的左上角。 由于 bbox_to_anchor 设置为 (1,1),因此图例移到了绘图边界之外。 该参数用于细化控制,例如将图例移出框。

import seaborn as sns
import matplotlib.pyplot as plt
titanic=sns.load_dataset("titanic")
titanic.head()
ax = sns.histplot(titanic, x="age", hue="who")
sns.move_legend(ax, "upper left", bbox_to_anchor=(1, 1))
plt.show()

输出

产生的输出如下,

move_legend_method

示例 3

在本例中,我们将向图例添加一些属性以改变其外观。 以下代码行可用于获取下图中显示的图例。

import seaborn as sns
import matplotlib.pyplot as plt
titanic=sns.load_dataset("titanic")
titanic.head()
ax = sns.histplot(titanic, x="age", hue="who")
sns.move_legend(ax, "lower center", bbox_to_anchor=(.5, 1), ncol=3, title=None, frameon=False)
plt.show()

输出

上面代码行的输出,其中图例的属性已稍作更改,使其看起来更符合设计师的风格,如下所示。

move_legend

❮Seaborn 实用函数简介