更改 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