更改 Seaborn 图中图例的位置

Manav Narula 2021年7月16日
更改 Seaborn 图中图例的位置

在本教程中,我们将学习如何在 Python 中更改 seaborn 图中的图例位置。

为此,我们需要禁用默认图例。这可以通过在 plot 函数中将 legend 参数设置为 False 来完成。我们将使用 matplotlib 库中的 matplotlib.pyplot.legend() 函数显式添加图例。

要更改图例的位置,我们将使用此函数中的 loc 参数。我们可以指定图例所需的位置作为该参数的值。

例如,

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame(
    {"Day 1": [7, 1, 5, 6, 3, 10, 5, 8], "Day 2": [1, 2, 8, 4, 3, 9, 5, 2]}
)

sns.lineplot(data=df, legend=False)
plt.legend(labels=["Day1", "Day2"], loc="upper right")

Seaborn 传奇位置

我们还可以指定不同的数字作为此参数的值。不同的数字对应不同的位置。比如 1 代表右上位置,2 代表左上位置等。参考这篇 Matplotlib 文章得到数字与位置关系表。

默认情况下,loc 参数的值为 0,这意味着它会搜索图中的位置,以便发生最小重叠。

我们还可以使用 bbox_to_anchor 参数将图例框放置在图外。bbox_to_anchor 指定图例相对于 loc 参数中指定位置的位置。如果我们使用二元元组设置 bbox_to_anchor 参数,那么它会将它们的值视为沿指定 loc 定位的 x 和 y 值。

例如,

import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame(
    {"Day 1": [7, 1, 5, 6, 3, 10, 5, 8], "Day 2": [1, 2, 8, 4, 3, 9, 5, 2]}
)

sns.lineplot(data=df, legend=False)
plt.legend(labels=["Day1", "Day2"], loc=2, bbox_to_anchor=(1, 1))

Seaborn 传奇位置

作者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

相关文章 - Seaborn Legend