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()
输出
产生的输出如下,
示例 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()
输出
产生的输出如下,
示例 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()
输出
上面代码行的输出,其中图例的属性已稍作更改,使其看起来更符合设计师的风格,如下所示。